
// -*-c++-*-
//-------------------------------------------------------------------------
//   Copyright 2002-2023 National Technology & Engineering Solutions of
//   Sandia, LLC (NTESS).  Under the terms of Contract DE-NA0003525 with
//   NTESS, the U.S. Government retains certain rights in this software.
//
//   This file is part of the Xyce(TM) Parallel Electrical Simulator.
//
//   Xyce(TM) is free software: you can redistribute it and/or modify
//   it under the terms of the GNU General Public License as published by
//   the Free Software Foundation, either version 3 of the License, or
//   (at your option) any later version.
//
//   Xyce(TM) is distributed in the hope that it will be useful,
//   but WITHOUT ANY WARRANTY; without even the implied warranty of
//   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//   GNU General Public License for more details.
//
//   You should have received a copy of the GNU General Public License
//   along with Xyce(TM).
//   If not, see <http://www.gnu.org/licenses/>.
//-------------------------------------------------------------------------

//-----------------------------------------------------------------------------
//
// Purpose        :
//
// Special Notes  : Generated from verilog file psp103t.va with ADMS
//                  interface for Xyce 7.7.0
//                  DO NOT EDIT THIS FILE DIRECTLY!  It may be overwritten!
//
// Creator        : admsXml-2.3.7
//
// Creation Date  : Mon, 18 Sep 2023 11:07:40
//
//-----------------------------------------------------------------------------
#ifndef Xyce_N_DEV_ADMSPSP103TVA_h
#define Xyce_N_DEV_ADMSPSP103TVA_h


#include <N_DEV_Configuration.h>
#include <N_DEV_Const.h>
#include <N_DEV_DeviceBlock.h>
#include <N_DEV_DeviceInstance.h>
#include <N_DEV_DeviceModel.h>
#include <N_DEV_MOSFET1.h>


// Xyce_config.h contains a VERSION macro from autoconf, and some
// Verilog-A models like to define a variable of that name.  This can be
// a serious problem, and we don't need the VERSION macro.  Get rid of it.
// This must happen *after* all the includes of Xyce headers, each of which
// includes Xyce_config.h.  The implementation file must do this all again
// because it includes more Xyce headers *after* including this one.
#ifdef VERSION
#undef VERSION
#endif

namespace Xyce {
namespace Device {
namespace ADMSPSP103TVA {

class Model;
class Instance;
class InstanceSensitivity;

#ifdef Xyce_ADMS_SENSITIVITIES
//-----------------------------------------------------------------------------
// Class         : InstanceSensitivity
//
// Purpose       : This class is a functor for sensitivity
//
// Special Notes :
// Creator       :
// Creation Date :
//-----------------------------------------------------------------------------
class InstanceSensitivity : public baseSensitivity
{
public:
InstanceSensitivity() :
baseSensitivity() {};

virtual ~InstanceSensitivity() {};

virtual void operator()(
const ParameterBase &entity,
const std::string &param,
std::vector<double> & dfdp,
std::vector<double> & dqdp,
std::vector<double> & dbdp,
std::vector<int> & Findices,
std::vector<int> & Qindices,
std::vector<int> & Bindices
) const ;
};

static InstanceSensitivity instSens;


//-----------------------------------------------------------------------------
// Class         : ModelSensitivity
//
// Purpose       : This class is a functor for sensitivity
//
// Special Notes :
// Creator       :
// Creation Date :
//-----------------------------------------------------------------------------
class ModelSensitivity : public baseSensitivity
{
public:
ModelSensitivity() :
baseSensitivity() {};

virtual ~ModelSensitivity() {};

virtual void operator()(
const ParameterBase &entity,
const std::string &param,
std::vector<double> & dfdp,
std::vector<double> & dqdp,
std::vector<double> & dbdp,
std::vector<int> & Findices,
std::vector<int> & Qindices,
std::vector<int> & Bindices
) const ;
};

static ModelSensitivity modSens;
#endif // Xyce_ADMS_SENSITIVITIES

// general purpose free functions
// thermal voltage at kelvin temperature temp)
static inline double adms_vt(const double temp) {return(CONSTKoverQ*temp);};


#ifdef Xyce_ADMS_SENSITIVITIES
//-----------------------------------------------------------------------------
// "structs" to hold instance and model param/variable copies
//-----------------------------------------------------------------------------
class instanceSensStruct
{
public:
// instance parameters
// reals
double instancePar_L;
double d_instancePar_L_dX;
bool instancePar_given_L;
double instancePar_W;
double d_instancePar_W_dX;
bool instancePar_given_W;
double instancePar_SA;
double d_instancePar_SA_dX;
bool instancePar_given_SA;
double instancePar_SB;
double d_instancePar_SB_dX;
bool instancePar_given_SB;
double instancePar_SD;
double d_instancePar_SD_dX;
bool instancePar_given_SD;
double instancePar_SCA;
double d_instancePar_SCA_dX;
bool instancePar_given_SCA;
double instancePar_SCB;
double d_instancePar_SCB_dX;
bool instancePar_given_SCB;
double instancePar_SCC;
double d_instancePar_SCC_dX;
bool instancePar_given_SCC;
double instancePar_SC;
double d_instancePar_SC_dX;
bool instancePar_given_SC;
double instancePar_NF;
double d_instancePar_NF_dX;
bool instancePar_given_NF;
double instancePar_NGCON;
double d_instancePar_NGCON_dX;
bool instancePar_given_NGCON;
double instancePar_XGW;
double d_instancePar_XGW_dX;
bool instancePar_given_XGW;
double instancePar_NRS;
double d_instancePar_NRS_dX;
bool instancePar_given_NRS;
double instancePar_NRD;
double d_instancePar_NRD_dX;
bool instancePar_given_NRD;
double instancePar_JW;
double d_instancePar_JW_dX;
bool instancePar_given_JW;
double instancePar_DELVTO;
double d_instancePar_DELVTO_dX;
bool instancePar_given_DELVTO;
double instancePar_FACTUO;
double d_instancePar_FACTUO_dX;
bool instancePar_given_FACTUO;
double instancePar_DELVTOEDGE;
double d_instancePar_DELVTOEDGE_dX;
bool instancePar_given_DELVTOEDGE;
double instancePar_FACTUOEDGE;
double d_instancePar_FACTUOEDGE_dX;
bool instancePar_given_FACTUOEDGE;
double instancePar_ABSOURCE;
double d_instancePar_ABSOURCE_dX;
bool instancePar_given_ABSOURCE;
double instancePar_LSSOURCE;
double d_instancePar_LSSOURCE_dX;
bool instancePar_given_LSSOURCE;
double instancePar_LGSOURCE;
double d_instancePar_LGSOURCE_dX;
bool instancePar_given_LGSOURCE;
double instancePar_ABDRAIN;
double d_instancePar_ABDRAIN_dX;
bool instancePar_given_ABDRAIN;
double instancePar_LSDRAIN;
double d_instancePar_LSDRAIN_dX;
bool instancePar_given_LSDRAIN;
double instancePar_LGDRAIN;
double d_instancePar_LGDRAIN_dX;
bool instancePar_given_LGDRAIN;
double instancePar_AS;
double d_instancePar_AS_dX;
bool instancePar_given_AS;
double instancePar_PS;
double d_instancePar_PS_dX;
bool instancePar_given_PS;
double instancePar_AD;
double d_instancePar_AD_dX;
bool instancePar_given_AD;
double instancePar_PD;
double d_instancePar_PD_dX;
bool instancePar_given_PD;
double instancePar_MULT;
double d_instancePar_MULT_dX;
bool instancePar_given_MULT;
double instancePar_DTA;
double d_instancePar_DTA_dX;
bool instancePar_given_DTA;
// instance variables
// reals
double instanceVar_MULT_i;
double d_instanceVar_MULT_i_dX;
double instanceVar_FACTUO_i;
double d_instanceVar_FACTUO_i_dX;
double instanceVar_DELVTO_i;
double d_instanceVar_DELVTO_i_dX;
double instanceVar_FACTUOEDGE_i;
double d_instanceVar_FACTUOEDGE_i_dX;
double instanceVar_DELVTOEDGE_i;
double d_instanceVar_DELVTOEDGE_i_dX;
double instanceVar_RTH_p;
double d_instanceVar_RTH_p_dX;
double instanceVar_VFB_i;
double d_instanceVar_VFB_i_dX;
double instanceVar_STVFB_i;
double d_instanceVar_STVFB_i_dX;
double instanceVar_TOX_i;
double d_instanceVar_TOX_i_dX;
double instanceVar_EPSROX_i;
double d_instanceVar_EPSROX_i_dX;
double instanceVar_NEFF_i;
double d_instanceVar_NEFF_i_dX;
double instanceVar_FACNEFFAC_i;
double d_instanceVar_FACNEFFAC_i_dX;
double instanceVar_GFACNUD_i;
double d_instanceVar_GFACNUD_i_dX;
double instanceVar_VSBNUD_i;
double d_instanceVar_VSBNUD_i_dX;
double instanceVar_DVSBNUD_i;
double d_instanceVar_DVSBNUD_i_dX;
double instanceVar_VNSUB_i;
double d_instanceVar_VNSUB_i_dX;
double instanceVar_NSLP_i;
double d_instanceVar_NSLP_i_dX;
double instanceVar_DNSUB_i;
double d_instanceVar_DNSUB_i_dX;
double instanceVar_DPHIB_i;
double d_instanceVar_DPHIB_i_dX;
double instanceVar_DELVTAC_i;
double d_instanceVar_DELVTAC_i_dX;
double instanceVar_NP_i;
double d_instanceVar_NP_i_dX;
double instanceVar_CT_i;
double d_instanceVar_CT_i_dX;
double instanceVar_TOXOV_i;
double d_instanceVar_TOXOV_i_dX;
double instanceVar_TOXOVD_i;
double d_instanceVar_TOXOVD_i_dX;
double instanceVar_NOV_i;
double d_instanceVar_NOV_i_dX;
double instanceVar_NOVD_i;
double d_instanceVar_NOVD_i_dX;
double instanceVar_CF_i;
double d_instanceVar_CF_i_dX;
double instanceVar_CFD_i;
double d_instanceVar_CFD_i_dX;
double instanceVar_CFB_i;
double d_instanceVar_CFB_i_dX;
double instanceVar_PSCE_i;
double d_instanceVar_PSCE_i_dX;
double instanceVar_PSCEB_i;
double d_instanceVar_PSCEB_i_dX;
double instanceVar_PSCED_i;
double d_instanceVar_PSCED_i_dX;
double instanceVar_BETN_i;
double d_instanceVar_BETN_i_dX;
double instanceVar_STBET_i;
double d_instanceVar_STBET_i_dX;
double instanceVar_MUE_i;
double d_instanceVar_MUE_i_dX;
double instanceVar_STMUE_i;
double d_instanceVar_STMUE_i_dX;
double instanceVar_THEMU_i;
double d_instanceVar_THEMU_i_dX;
double instanceVar_STTHEMU_i;
double d_instanceVar_STTHEMU_i_dX;
double instanceVar_CS_i;
double d_instanceVar_CS_i_dX;
double instanceVar_STCS_i;
double d_instanceVar_STCS_i_dX;
double instanceVar_XCOR_i;
double d_instanceVar_XCOR_i_dX;
double instanceVar_STXCOR_i;
double d_instanceVar_STXCOR_i_dX;
double instanceVar_FETA_i;
double d_instanceVar_FETA_i_dX;
double instanceVar_RS_i;
double d_instanceVar_RS_i_dX;
double instanceVar_STRS_i;
double d_instanceVar_STRS_i_dX;
double instanceVar_RSB_i;
double d_instanceVar_RSB_i_dX;
double instanceVar_RSG_i;
double d_instanceVar_RSG_i_dX;
double instanceVar_THESAT_i;
double d_instanceVar_THESAT_i_dX;
double instanceVar_STTHESAT_i;
double d_instanceVar_STTHESAT_i_dX;
double instanceVar_THESATB_i;
double d_instanceVar_THESATB_i_dX;
double instanceVar_THESATG_i;
double d_instanceVar_THESATG_i_dX;
double instanceVar_AX_i;
double d_instanceVar_AX_i_dX;
double instanceVar_ALP_i;
double d_instanceVar_ALP_i_dX;
double instanceVar_ALP1_i;
double d_instanceVar_ALP1_i_dX;
double instanceVar_ALP2_i;
double d_instanceVar_ALP2_i_dX;
double instanceVar_VP_i;
double d_instanceVar_VP_i_dX;
double instanceVar_A1_i;
double d_instanceVar_A1_i_dX;
double instanceVar_A2_i;
double d_instanceVar_A2_i_dX;
double instanceVar_STA2_i;
double d_instanceVar_STA2_i_dX;
double instanceVar_A3_i;
double d_instanceVar_A3_i_dX;
double instanceVar_A4_i;
double d_instanceVar_A4_i_dX;
double instanceVar_GCO_i;
double d_instanceVar_GCO_i_dX;
double instanceVar_IGINV_i;
double d_instanceVar_IGINV_i_dX;
double instanceVar_IGOV_i;
double d_instanceVar_IGOV_i_dX;
double instanceVar_IGOVD_i;
double d_instanceVar_IGOVD_i_dX;
double instanceVar_STIG_i;
double d_instanceVar_STIG_i_dX;
double instanceVar_GC2_i;
double d_instanceVar_GC2_i_dX;
double instanceVar_GC3_i;
double d_instanceVar_GC3_i_dX;
double instanceVar_CHIB_i;
double d_instanceVar_CHIB_i_dX;
double instanceVar_AGIDL_i;
double d_instanceVar_AGIDL_i_dX;
double instanceVar_AGIDLD_i;
double d_instanceVar_AGIDLD_i_dX;
double instanceVar_STBGIDL_i;
double d_instanceVar_STBGIDL_i_dX;
double instanceVar_STBGIDLD_i;
double d_instanceVar_STBGIDLD_i_dX;
double instanceVar_CGIDL_i;
double d_instanceVar_CGIDL_i_dX;
double instanceVar_CGIDLD_i;
double d_instanceVar_CGIDLD_i_dX;
double instanceVar_COX_i;
double d_instanceVar_COX_i_dX;
double instanceVar_CGOV_i;
double d_instanceVar_CGOV_i_dX;
double instanceVar_CGOVD_i;
double d_instanceVar_CGOVD_i_dX;
double instanceVar_CGBOV_i;
double d_instanceVar_CGBOV_i_dX;
double instanceVar_CFR_i;
double d_instanceVar_CFR_i_dX;
double instanceVar_CFRD_i;
double d_instanceVar_CFRD_i_dX;
double instanceVar_FNT_i;
double d_instanceVar_FNT_i_dX;
double instanceVar_FNTEXC_i;
double d_instanceVar_FNTEXC_i_dX;
double instanceVar_NFA_i;
double d_instanceVar_NFA_i_dX;
double instanceVar_NFB_i;
double d_instanceVar_NFB_i_dX;
double instanceVar_NFC_i;
double d_instanceVar_NFC_i_dX;
double instanceVar_EF_i;
double d_instanceVar_EF_i_dX;
double instanceVar_VFBEDGE_i;
double d_instanceVar_VFBEDGE_i_dX;
double instanceVar_STVFBEDGE_i;
double d_instanceVar_STVFBEDGE_i_dX;
double instanceVar_DPHIBEDGE_i;
double d_instanceVar_DPHIBEDGE_i_dX;
double instanceVar_NEFFEDGE_i;
double d_instanceVar_NEFFEDGE_i_dX;
double instanceVar_CTEDGE_i;
double d_instanceVar_CTEDGE_i_dX;
double instanceVar_BETNEDGE_i;
double d_instanceVar_BETNEDGE_i_dX;
double instanceVar_STBETEDGE_i;
double d_instanceVar_STBETEDGE_i_dX;
double instanceVar_PSCEEDGE_i;
double d_instanceVar_PSCEEDGE_i_dX;
double instanceVar_PSCEBEDGE_i;
double d_instanceVar_PSCEBEDGE_i_dX;
double instanceVar_PSCEDEDGE_i;
double d_instanceVar_PSCEDEDGE_i_dX;
double instanceVar_CFEDGE_i;
double d_instanceVar_CFEDGE_i_dX;
double instanceVar_CFDEDGE_i;
double d_instanceVar_CFDEDGE_i_dX;
double instanceVar_CFBEDGE_i;
double d_instanceVar_CFBEDGE_i_dX;
double instanceVar_FNTEDGE_i;
double d_instanceVar_FNTEDGE_i_dX;
double instanceVar_NFAEDGE_i;
double d_instanceVar_NFAEDGE_i_dX;
double instanceVar_NFBEDGE_i;
double d_instanceVar_NFBEDGE_i_dX;
double instanceVar_NFCEDGE_i;
double d_instanceVar_NFCEDGE_i_dX;
double instanceVar_EFEDGE_i;
double d_instanceVar_EFEDGE_i_dX;
double instanceVar_RG_i;
double d_instanceVar_RG_i_dX;
double instanceVar_RSE_i;
double d_instanceVar_RSE_i_dX;
double instanceVar_RDE_i;
double d_instanceVar_RDE_i_dX;
double instanceVar_RBULK_i;
double d_instanceVar_RBULK_i_dX;
double instanceVar_RJUNS_i;
double d_instanceVar_RJUNS_i_dX;
double instanceVar_RJUND_i;
double d_instanceVar_RJUND_i_dX;
double instanceVar_RWELL_i;
double d_instanceVar_RWELL_i_dX;
double instanceVar_RTH_i;
double d_instanceVar_RTH_i_dX;
double instanceVar_CTH_i;
double d_instanceVar_CTH_i_dX;
double instanceVar_STRTH_i;
double d_instanceVar_STRTH_i_dX;
double instanceVar_LE;
double d_instanceVar_LE_dX;
double instanceVar_WE;
double d_instanceVar_WE_dX;
double instanceVar_TKR;
double d_instanceVar_TKR_dX;
double instanceVar_TKA;
double d_instanceVar_TKA_dX;
double instanceVar_phita;
double d_instanceVar_phita_dX;
double instanceVar_inv_phita;
double d_instanceVar_inv_phita_dX;
double instanceVar_VBIRBOT_i;
double d_instanceVar_VBIRBOT_i_dX;
double instanceVar_VBIRSTI_i;
double d_instanceVar_VBIRSTI_i_dX;
double instanceVar_VBIRGAT_i;
double d_instanceVar_VBIRGAT_i_dX;
double instanceVar_PBOT_i;
double d_instanceVar_PBOT_i_dX;
double instanceVar_PSTI_i;
double d_instanceVar_PSTI_i_dX;
double instanceVar_PGAT_i;
double d_instanceVar_PGAT_i_dX;
double instanceVar_CSRHBOT_i;
double d_instanceVar_CSRHBOT_i_dX;
double instanceVar_CSRHSTI_i;
double d_instanceVar_CSRHSTI_i_dX;
double instanceVar_CSRHGAT_i;
double d_instanceVar_CSRHGAT_i_dX;
double instanceVar_CTATBOT_i;
double d_instanceVar_CTATBOT_i_dX;
double instanceVar_CTATSTI_i;
double d_instanceVar_CTATSTI_i_dX;
double instanceVar_CTATGAT_i;
double d_instanceVar_CTATGAT_i_dX;
double instanceVar_CBBTBOT_i;
double d_instanceVar_CBBTBOT_i_dX;
double instanceVar_CBBTSTI_i;
double d_instanceVar_CBBTSTI_i_dX;
double instanceVar_CBBTGAT_i;
double d_instanceVar_CBBTGAT_i_dX;
double instanceVar_VBRBOT_i;
double d_instanceVar_VBRBOT_i_dX;
double instanceVar_VBRSTI_i;
double d_instanceVar_VBRSTI_i_dX;
double instanceVar_VBRGAT_i;
double d_instanceVar_VBRGAT_i_dX;
double instanceVar_PBRBOT_i;
double d_instanceVar_PBRBOT_i_dX;
double instanceVar_PBRSTI_i;
double d_instanceVar_PBRSTI_i_dX;
double instanceVar_PBRGAT_i;
double d_instanceVar_PBRGAT_i_dX;
double instanceVar_SWJUNEXP_i;
double instanceVar_phitr;
double d_instanceVar_phitr_dX;
double instanceVar_phitd;
double d_instanceVar_phitd_dX;
double instanceVar_phitdinv;
double d_instanceVar_phitdinv_dX;
double instanceVar_perfc;
double instanceVar_berfc;
double instanceVar_cerfc;
double instanceVar_ftdbot;
double d_instanceVar_ftdbot_dX;
double instanceVar_ftdsti;
double d_instanceVar_ftdsti_dX;
double instanceVar_ftdgat;
double d_instanceVar_ftdgat_dX;
double instanceVar_idsatbot;
double d_instanceVar_idsatbot_dX;
double instanceVar_idsatsti;
double d_instanceVar_idsatsti_dX;
double instanceVar_idsatgat;
double d_instanceVar_idsatgat_dX;
double instanceVar_vbibot;
double d_instanceVar_vbibot_dX;
double instanceVar_vbisti;
double d_instanceVar_vbisti_dX;
double instanceVar_vbigat;
double d_instanceVar_vbigat_dX;
double instanceVar_vbiinvbot;
double d_instanceVar_vbiinvbot_dX;
double instanceVar_vbiinvsti;
double d_instanceVar_vbiinvsti_dX;
double instanceVar_vbiinvgat;
double d_instanceVar_vbiinvgat_dX;
double instanceVar_one_minus_PBOT;
double d_instanceVar_one_minus_PBOT_dX;
double instanceVar_one_minus_PSTI;
double d_instanceVar_one_minus_PSTI_dX;
double instanceVar_one_minus_PGAT;
double d_instanceVar_one_minus_PGAT_dX;
double instanceVar_one_over_one_minus_PBOT;
double d_instanceVar_one_over_one_minus_PBOT_dX;
double instanceVar_one_over_one_minus_PSTI;
double d_instanceVar_one_over_one_minus_PSTI_dX;
double instanceVar_one_over_one_minus_PGAT;
double d_instanceVar_one_over_one_minus_PGAT_dX;
double instanceVar_cjobot;
double d_instanceVar_cjobot_dX;
double instanceVar_cjosti;
double d_instanceVar_cjosti_dX;
double instanceVar_cjogat;
double d_instanceVar_cjogat_dX;
double instanceVar_qprefbot;
double d_instanceVar_qprefbot_dX;
double instanceVar_qprefsti;
double d_instanceVar_qprefsti_dX;
double instanceVar_qprefgat;
double d_instanceVar_qprefgat_dX;
double instanceVar_qpref2bot;
double d_instanceVar_qpref2bot_dX;
double instanceVar_qpref2sti;
double d_instanceVar_qpref2sti_dX;
double instanceVar_qpref2gat;
double d_instanceVar_qpref2gat_dX;
double instanceVar_wdepnulrbot;
double d_instanceVar_wdepnulrbot_dX;
double instanceVar_wdepnulrsti;
double d_instanceVar_wdepnulrsti_dX;
double instanceVar_wdepnulrgat;
double d_instanceVar_wdepnulrgat_dX;
double instanceVar_wdepnulrinvbot;
double d_instanceVar_wdepnulrinvbot_dX;
double instanceVar_wdepnulrinvsti;
double d_instanceVar_wdepnulrinvsti_dX;
double instanceVar_wdepnulrinvgat;
double d_instanceVar_wdepnulrinvgat_dX;
double instanceVar_VBIRBOTinv;
double d_instanceVar_VBIRBOTinv_dX;
double instanceVar_VBIRSTIinv;
double d_instanceVar_VBIRSTIinv_dX;
double instanceVar_VBIRGATinv;
double d_instanceVar_VBIRGATinv_dX;
double instanceVar_atatbot;
double d_instanceVar_atatbot_dX;
double instanceVar_atatsti;
double d_instanceVar_atatsti_dX;
double instanceVar_atatgat;
double d_instanceVar_atatgat_dX;
double instanceVar_btatpartbot;
double d_instanceVar_btatpartbot_dX;
double instanceVar_btatpartsti;
double d_instanceVar_btatpartsti_dX;
double instanceVar_btatpartgat;
double d_instanceVar_btatpartgat_dX;
double instanceVar_fbbtbot;
double d_instanceVar_fbbtbot_dX;
double instanceVar_fbbtsti;
double d_instanceVar_fbbtsti_dX;
double instanceVar_fbbtgat;
double d_instanceVar_fbbtgat_dX;
double instanceVar_alphaav;
double d_instanceVar_alphaav_dX;
double instanceVar_fstopbot;
double d_instanceVar_fstopbot_dX;
double instanceVar_fstopsti;
double d_instanceVar_fstopsti_dX;
double instanceVar_fstopgat;
double d_instanceVar_fstopgat_dX;
double instanceVar_VBRinvbot;
double d_instanceVar_VBRinvbot_dX;
double instanceVar_VBRinvsti;
double d_instanceVar_VBRinvsti_dX;
double instanceVar_VBRinvgat;
double d_instanceVar_VBRinvgat_dX;
double instanceVar_slopebot;
double d_instanceVar_slopebot_dX;
double instanceVar_slopesti;
double d_instanceVar_slopesti_dX;
double instanceVar_slopegat;
double d_instanceVar_slopegat_dX;
double instanceVar_VBIRBOTD_i;
double d_instanceVar_VBIRBOTD_i_dX;
double instanceVar_VBIRSTID_i;
double d_instanceVar_VBIRSTID_i_dX;
double instanceVar_VBIRGATD_i;
double d_instanceVar_VBIRGATD_i_dX;
double instanceVar_PBOTD_i;
double d_instanceVar_PBOTD_i_dX;
double instanceVar_PSTID_i;
double d_instanceVar_PSTID_i_dX;
double instanceVar_PGATD_i;
double d_instanceVar_PGATD_i_dX;
double instanceVar_CSRHBOTD_i;
double d_instanceVar_CSRHBOTD_i_dX;
double instanceVar_CSRHSTID_i;
double d_instanceVar_CSRHSTID_i_dX;
double instanceVar_CSRHGATD_i;
double d_instanceVar_CSRHGATD_i_dX;
double instanceVar_CTATBOTD_i;
double d_instanceVar_CTATBOTD_i_dX;
double instanceVar_CTATSTID_i;
double d_instanceVar_CTATSTID_i_dX;
double instanceVar_CTATGATD_i;
double d_instanceVar_CTATGATD_i_dX;
double instanceVar_CBBTBOTD_i;
double d_instanceVar_CBBTBOTD_i_dX;
double instanceVar_CBBTSTID_i;
double d_instanceVar_CBBTSTID_i_dX;
double instanceVar_CBBTGATD_i;
double d_instanceVar_CBBTGATD_i_dX;
double instanceVar_VBRBOTD_i;
double d_instanceVar_VBRBOTD_i_dX;
double instanceVar_VBRSTID_i;
double d_instanceVar_VBRSTID_i_dX;
double instanceVar_VBRGATD_i;
double d_instanceVar_VBRGATD_i_dX;
double instanceVar_PBRBOTD_i;
double d_instanceVar_PBRBOTD_i_dX;
double instanceVar_PBRSTID_i;
double d_instanceVar_PBRSTID_i_dX;
double instanceVar_PBRGATD_i;
double d_instanceVar_PBRGATD_i_dX;
double instanceVar_ftdbot_d;
double d_instanceVar_ftdbot_d_dX;
double instanceVar_ftdsti_d;
double d_instanceVar_ftdsti_d_dX;
double instanceVar_ftdgat_d;
double d_instanceVar_ftdgat_d_dX;
double instanceVar_idsatbot_d;
double d_instanceVar_idsatbot_d_dX;
double instanceVar_idsatsti_d;
double d_instanceVar_idsatsti_d_dX;
double instanceVar_idsatgat_d;
double d_instanceVar_idsatgat_d_dX;
double instanceVar_vbibot_d;
double d_instanceVar_vbibot_d_dX;
double instanceVar_vbisti_d;
double d_instanceVar_vbisti_d_dX;
double instanceVar_vbigat_d;
double d_instanceVar_vbigat_d_dX;
double instanceVar_vbiinvbot_d;
double d_instanceVar_vbiinvbot_d_dX;
double instanceVar_vbiinvsti_d;
double d_instanceVar_vbiinvsti_d_dX;
double instanceVar_vbiinvgat_d;
double d_instanceVar_vbiinvgat_d_dX;
double instanceVar_one_minus_PBOT_d;
double d_instanceVar_one_minus_PBOT_d_dX;
double instanceVar_one_minus_PSTI_d;
double d_instanceVar_one_minus_PSTI_d_dX;
double instanceVar_one_minus_PGAT_d;
double d_instanceVar_one_minus_PGAT_d_dX;
double instanceVar_one_over_one_minus_PBOT_d;
double d_instanceVar_one_over_one_minus_PBOT_d_dX;
double instanceVar_one_over_one_minus_PSTI_d;
double d_instanceVar_one_over_one_minus_PSTI_d_dX;
double instanceVar_one_over_one_minus_PGAT_d;
double d_instanceVar_one_over_one_minus_PGAT_d_dX;
double instanceVar_cjobot_d;
double d_instanceVar_cjobot_d_dX;
double instanceVar_cjosti_d;
double d_instanceVar_cjosti_d_dX;
double instanceVar_cjogat_d;
double d_instanceVar_cjogat_d_dX;
double instanceVar_qprefbot_d;
double d_instanceVar_qprefbot_d_dX;
double instanceVar_qprefsti_d;
double d_instanceVar_qprefsti_d_dX;
double instanceVar_qprefgat_d;
double d_instanceVar_qprefgat_d_dX;
double instanceVar_qpref2bot_d;
double d_instanceVar_qpref2bot_d_dX;
double instanceVar_qpref2sti_d;
double d_instanceVar_qpref2sti_d_dX;
double instanceVar_qpref2gat_d;
double d_instanceVar_qpref2gat_d_dX;
double instanceVar_wdepnulrbot_d;
double d_instanceVar_wdepnulrbot_d_dX;
double instanceVar_wdepnulrsti_d;
double d_instanceVar_wdepnulrsti_d_dX;
double instanceVar_wdepnulrgat_d;
double d_instanceVar_wdepnulrgat_d_dX;
double instanceVar_wdepnulrinvbot_d;
double d_instanceVar_wdepnulrinvbot_d_dX;
double instanceVar_wdepnulrinvsti_d;
double d_instanceVar_wdepnulrinvsti_d_dX;
double instanceVar_wdepnulrinvgat_d;
double d_instanceVar_wdepnulrinvgat_d_dX;
double instanceVar_VBIRBOTinv_d;
double d_instanceVar_VBIRBOTinv_d_dX;
double instanceVar_VBIRSTIinv_d;
double d_instanceVar_VBIRSTIinv_d_dX;
double instanceVar_VBIRGATinv_d;
double d_instanceVar_VBIRGATinv_d_dX;
double instanceVar_atatbot_d;
double d_instanceVar_atatbot_d_dX;
double instanceVar_atatsti_d;
double d_instanceVar_atatsti_d_dX;
double instanceVar_atatgat_d;
double d_instanceVar_atatgat_d_dX;
double instanceVar_btatpartbot_d;
double d_instanceVar_btatpartbot_d_dX;
double instanceVar_btatpartsti_d;
double d_instanceVar_btatpartsti_d_dX;
double instanceVar_btatpartgat_d;
double d_instanceVar_btatpartgat_d_dX;
double instanceVar_fbbtbot_d;
double d_instanceVar_fbbtbot_d_dX;
double instanceVar_fbbtsti_d;
double d_instanceVar_fbbtsti_d_dX;
double instanceVar_fbbtgat_d;
double d_instanceVar_fbbtgat_d_dX;
double instanceVar_fstopbot_d;
double d_instanceVar_fstopbot_d_dX;
double instanceVar_fstopsti_d;
double d_instanceVar_fstopsti_d_dX;
double instanceVar_fstopgat_d;
double d_instanceVar_fstopgat_d_dX;
double instanceVar_VBRinvbot_d;
double d_instanceVar_VBRinvbot_d_dX;
double instanceVar_VBRinvsti_d;
double d_instanceVar_VBRinvsti_d_dX;
double instanceVar_VBRinvgat_d;
double d_instanceVar_VBRinvgat_d_dX;
double instanceVar_slopebot_d;
double d_instanceVar_slopebot_d_dX;
double instanceVar_slopesti_d;
double d_instanceVar_slopesti_d_dX;
double instanceVar_slopegat_d;
double d_instanceVar_slopegat_d_dX;
double instanceVar_ABSOURCE_i;
double d_instanceVar_ABSOURCE_i_dX;
double instanceVar_LSSOURCE_i;
double d_instanceVar_LSSOURCE_i_dX;
double instanceVar_LGSOURCE_i;
double d_instanceVar_LGSOURCE_i_dX;
double instanceVar_zflagbot_s;
double instanceVar_zflagsti_s;
double instanceVar_zflaggat_s;
double instanceVar_VMAX_s;
double d_instanceVar_VMAX_s_dX;
double instanceVar_exp_VMAX_over_phitd_s;
double d_instanceVar_exp_VMAX_over_phitd_s_dX;
double instanceVar_vbimin_s;
double d_instanceVar_vbimin_s_dX;
double instanceVar_vch_s;
double d_instanceVar_vch_s_dX;
double instanceVar_vfmin_s;
double d_instanceVar_vfmin_s_dX;
double instanceVar_vbbtlim_s;
double d_instanceVar_vbbtlim_s_dX;
double instanceVar_xhighf1_s;
double d_instanceVar_xhighf1_s_dX;
double instanceVar_expxhf1_s;
double d_instanceVar_expxhf1_s_dX;
double instanceVar_xhighf2_s;
double d_instanceVar_xhighf2_s_dX;
double instanceVar_expxhf2_s;
double d_instanceVar_expxhf2_s_dX;
double instanceVar_xhighr_s;
double d_instanceVar_xhighr_s_dX;
double instanceVar_expxhr_s;
double d_instanceVar_expxhr_s_dX;
double instanceVar_m0flag_s;
double instanceVar_ISATFOR1_s;
double d_instanceVar_ISATFOR1_s_dX;
double instanceVar_MFOR1_s;
double instanceVar_ISATFOR2_s;
double d_instanceVar_ISATFOR2_s_dX;
double instanceVar_MFOR2_s;
double d_instanceVar_MFOR2_s_dX;
double instanceVar_ISATREV_s;
double d_instanceVar_ISATREV_s_dX;
double instanceVar_MREV_s;
double d_instanceVar_MREV_s_dX;
double instanceVar_ABDRAIN_i;
double d_instanceVar_ABDRAIN_i_dX;
double instanceVar_LSDRAIN_i;
double d_instanceVar_LSDRAIN_i_dX;
double instanceVar_LGDRAIN_i;
double d_instanceVar_LGDRAIN_i_dX;
double instanceVar_zflagbot_d;
double instanceVar_zflagsti_d;
double instanceVar_zflaggat_d;
double instanceVar_VMAX_d;
double d_instanceVar_VMAX_d_dX;
double instanceVar_exp_VMAX_over_phitd_d;
double d_instanceVar_exp_VMAX_over_phitd_d_dX;
double instanceVar_vbimin_d;
double d_instanceVar_vbimin_d_dX;
double instanceVar_vch_d;
double d_instanceVar_vch_d_dX;
double instanceVar_vfmin_d;
double d_instanceVar_vfmin_d_dX;
double instanceVar_vbbtlim_d;
double d_instanceVar_vbbtlim_d_dX;
double instanceVar_xhighf1_d;
double d_instanceVar_xhighf1_d_dX;
double instanceVar_expxhf1_d;
double d_instanceVar_expxhf1_d_dX;
double instanceVar_xhighf2_d;
double d_instanceVar_xhighf2_d_dX;
double instanceVar_expxhf2_d;
double d_instanceVar_expxhf2_d_dX;
double instanceVar_xhighr_d;
double d_instanceVar_xhighr_d_dX;
double instanceVar_expxhr_d;
double d_instanceVar_expxhr_d_dX;
double instanceVar_m0flag_d;
double instanceVar_ISATFOR1_d;
double d_instanceVar_ISATFOR1_d_dX;
double instanceVar_MFOR1_d;
double instanceVar_ISATFOR2_d;
double d_instanceVar_ISATFOR2_d_dX;
double instanceVar_MFOR2_d;
double d_instanceVar_MFOR2_d_dX;
double instanceVar_ISATREV_d;
double d_instanceVar_ISATREV_d_dX;
double instanceVar_MREV_d;
double d_instanceVar_MREV_d_dX;
double instanceVar_BGIDL_T;
double d_instanceVar_BGIDL_T_dX;
double instanceVar_BGIDLD_T;
double d_instanceVar_BGIDLD_T_dX;
double instanceVar_RTH_T;
double d_instanceVar_RTH_T_dX;
double instanceVar_CoxPrime;
double d_instanceVar_CoxPrime_dX;
double instanceVar_tox_sq;
double d_instanceVar_tox_sq_dX;
double instanceVar_Cox_over_q;
double d_instanceVar_Cox_over_q_dX;
double instanceVar_NEFFAC_i;
double d_instanceVar_NEFFAC_i_dX;
double instanceVar_qq;
double d_instanceVar_qq_dX;
double instanceVar_E_eff0;
double d_instanceVar_E_eff0_dX;
double instanceVar_eta_mu;
double d_instanceVar_eta_mu_dX;
double instanceVar_eta_mu1;
double instanceVar_inv_AX;
double d_instanceVar_inv_AX_dX;
double instanceVar_inv_VP;
double d_instanceVar_inv_VP_dX;
double instanceVar_GOV_s;
double d_instanceVar_GOV_s_dX;
double instanceVar_GOV_d;
double d_instanceVar_GOV_d_dX;
double instanceVar_GOV2_s;
double d_instanceVar_GOV2_s_dX;
double instanceVar_GOV2_d;
double d_instanceVar_GOV2_d_dX;
double instanceVar_SP_OV_eps2_s;
double d_instanceVar_SP_OV_eps2_s_dX;
double instanceVar_SP_OV_a_s;
double d_instanceVar_SP_OV_a_s_dX;
double instanceVar_SP_OV_delta1_s;
double d_instanceVar_SP_OV_delta1_s_dX;
double instanceVar_SP_OV_eps2_d;
double d_instanceVar_SP_OV_eps2_d_dX;
double instanceVar_SP_OV_a_d;
double d_instanceVar_SP_OV_a_d_dX;
double instanceVar_SP_OV_delta1_d;
double d_instanceVar_SP_OV_delta1_d_dX;
double instanceVar_inv_CHIB;
double d_instanceVar_inv_CHIB_dX;
double instanceVar_BCH;
double d_instanceVar_BCH_dX;
double instanceVar_BOV;
double d_instanceVar_BOV_dX;
double instanceVar_BOV_d;
double d_instanceVar_BOV_d_dX;
double instanceVar_GCQ;
double d_instanceVar_GCQ_dX;
double instanceVar_AGIDLs;
double d_instanceVar_AGIDLs_dX;
double instanceVar_AGIDLDs;
double d_instanceVar_AGIDLDs_dX;
double instanceVar_BGIDLs;
double d_instanceVar_BGIDLs_dX;
double instanceVar_BGIDLDs;
double d_instanceVar_BGIDLDs_dX;
double instanceVar_fac_exc;
double d_instanceVar_fac_exc_dX;
double instanceVar_ggate;
double d_instanceVar_ggate_dX;
double instanceVar_gsource;
double d_instanceVar_gsource_dX;
double instanceVar_gdrain;
double d_instanceVar_gdrain_dX;
double instanceVar_gbulk;
double d_instanceVar_gbulk_dX;
double instanceVar_gjuns;
double d_instanceVar_gjuns_dX;
double instanceVar_gjund;
double d_instanceVar_gjund_dX;
double instanceVar_gwell;
double d_instanceVar_gwell_dX;
double instanceVar_Sfl;
double d_instanceVar_Sfl_dX;
double instanceVar_sqid;
double d_instanceVar_sqid_dX;
double instanceVar_mig;
double d_instanceVar_mig_dX;
double instanceVar_CGeff;
double d_instanceVar_CGeff_dX;
double instanceVar_c_igid;
double d_instanceVar_c_igid_dX;
double instanceVar_shot_igcsx;
double d_instanceVar_shot_igcsx_dX;
double instanceVar_shot_igcdx;
double d_instanceVar_shot_igcdx_dX;
double instanceVar_shot_igsov;
double d_instanceVar_shot_igsov_dX;
double instanceVar_shot_igdov;
double d_instanceVar_shot_igdov_dX;
double instanceVar_shot_iavl;
double d_instanceVar_shot_iavl_dX;
double instanceVar_jnoisex_s;
double d_instanceVar_jnoisex_s_dX;
double instanceVar_jnoisex_d;
double d_instanceVar_jnoisex_d_dX;
};

class modelSensStruct
{
public:
// model parameters
// reals
double modelPar_TR;
double d_modelPar_TR_dX;
bool modelPar_given_TR;
double modelPar_QMC;
double d_modelPar_QMC_dX;
bool modelPar_given_QMC;
double modelPar_VFB;
double d_modelPar_VFB_dX;
bool modelPar_given_VFB;
double modelPar_STVFB;
double d_modelPar_STVFB_dX;
bool modelPar_given_STVFB;
double modelPar_TOX;
double d_modelPar_TOX_dX;
bool modelPar_given_TOX;
double modelPar_EPSROX;
double d_modelPar_EPSROX_dX;
bool modelPar_given_EPSROX;
double modelPar_NEFF;
double d_modelPar_NEFF_dX;
bool modelPar_given_NEFF;
double modelPar_FACNEFFAC;
double d_modelPar_FACNEFFAC_dX;
bool modelPar_given_FACNEFFAC;
double modelPar_GFACNUD;
double d_modelPar_GFACNUD_dX;
bool modelPar_given_GFACNUD;
double modelPar_VSBNUD;
double d_modelPar_VSBNUD_dX;
bool modelPar_given_VSBNUD;
double modelPar_DVSBNUD;
double d_modelPar_DVSBNUD_dX;
bool modelPar_given_DVSBNUD;
double modelPar_VNSUB;
double d_modelPar_VNSUB_dX;
bool modelPar_given_VNSUB;
double modelPar_NSLP;
double d_modelPar_NSLP_dX;
bool modelPar_given_NSLP;
double modelPar_DNSUB;
double d_modelPar_DNSUB_dX;
bool modelPar_given_DNSUB;
double modelPar_DPHIB;
double d_modelPar_DPHIB_dX;
bool modelPar_given_DPHIB;
double modelPar_DELVTAC;
double d_modelPar_DELVTAC_dX;
bool modelPar_given_DELVTAC;
double modelPar_NP;
double d_modelPar_NP_dX;
bool modelPar_given_NP;
double modelPar_CT;
double d_modelPar_CT_dX;
bool modelPar_given_CT;
double modelPar_TOXOV;
double d_modelPar_TOXOV_dX;
bool modelPar_given_TOXOV;
double modelPar_TOXOVD;
double d_modelPar_TOXOVD_dX;
bool modelPar_given_TOXOVD;
double modelPar_NOV;
double d_modelPar_NOV_dX;
bool modelPar_given_NOV;
double modelPar_NOVD;
double d_modelPar_NOVD_dX;
bool modelPar_given_NOVD;
double modelPar_CF;
double d_modelPar_CF_dX;
bool modelPar_given_CF;
double modelPar_CFD;
double d_modelPar_CFD_dX;
bool modelPar_given_CFD;
double modelPar_CFB;
double d_modelPar_CFB_dX;
bool modelPar_given_CFB;
double modelPar_PSCE;
double d_modelPar_PSCE_dX;
bool modelPar_given_PSCE;
double modelPar_PSCEB;
double d_modelPar_PSCEB_dX;
bool modelPar_given_PSCEB;
double modelPar_PSCED;
double d_modelPar_PSCED_dX;
bool modelPar_given_PSCED;
double modelPar_BETN;
double d_modelPar_BETN_dX;
bool modelPar_given_BETN;
double modelPar_STBET;
double d_modelPar_STBET_dX;
bool modelPar_given_STBET;
double modelPar_MUE;
double d_modelPar_MUE_dX;
bool modelPar_given_MUE;
double modelPar_STMUE;
double d_modelPar_STMUE_dX;
bool modelPar_given_STMUE;
double modelPar_THEMU;
double d_modelPar_THEMU_dX;
bool modelPar_given_THEMU;
double modelPar_STTHEMU;
double d_modelPar_STTHEMU_dX;
bool modelPar_given_STTHEMU;
double modelPar_CS;
double d_modelPar_CS_dX;
bool modelPar_given_CS;
double modelPar_STCS;
double d_modelPar_STCS_dX;
bool modelPar_given_STCS;
double modelPar_XCOR;
double d_modelPar_XCOR_dX;
bool modelPar_given_XCOR;
double modelPar_STXCOR;
double d_modelPar_STXCOR_dX;
bool modelPar_given_STXCOR;
double modelPar_FETA;
double d_modelPar_FETA_dX;
bool modelPar_given_FETA;
double modelPar_RS;
double d_modelPar_RS_dX;
bool modelPar_given_RS;
double modelPar_STRS;
double d_modelPar_STRS_dX;
bool modelPar_given_STRS;
double modelPar_RSB;
double d_modelPar_RSB_dX;
bool modelPar_given_RSB;
double modelPar_RSG;
double d_modelPar_RSG_dX;
bool modelPar_given_RSG;
double modelPar_THESAT;
double d_modelPar_THESAT_dX;
bool modelPar_given_THESAT;
double modelPar_STTHESAT;
double d_modelPar_STTHESAT_dX;
bool modelPar_given_STTHESAT;
double modelPar_THESATB;
double d_modelPar_THESATB_dX;
bool modelPar_given_THESATB;
double modelPar_THESATG;
double d_modelPar_THESATG_dX;
bool modelPar_given_THESATG;
double modelPar_AX;
double d_modelPar_AX_dX;
bool modelPar_given_AX;
double modelPar_ALP;
double d_modelPar_ALP_dX;
bool modelPar_given_ALP;
double modelPar_ALP1;
double d_modelPar_ALP1_dX;
bool modelPar_given_ALP1;
double modelPar_ALP2;
double d_modelPar_ALP2_dX;
bool modelPar_given_ALP2;
double modelPar_VP;
double d_modelPar_VP_dX;
bool modelPar_given_VP;
double modelPar_A1;
double d_modelPar_A1_dX;
bool modelPar_given_A1;
double modelPar_A2;
double d_modelPar_A2_dX;
bool modelPar_given_A2;
double modelPar_STA2;
double d_modelPar_STA2_dX;
bool modelPar_given_STA2;
double modelPar_A3;
double d_modelPar_A3_dX;
bool modelPar_given_A3;
double modelPar_A4;
double d_modelPar_A4_dX;
bool modelPar_given_A4;
double modelPar_GCO;
double d_modelPar_GCO_dX;
bool modelPar_given_GCO;
double modelPar_IGINV;
double d_modelPar_IGINV_dX;
bool modelPar_given_IGINV;
double modelPar_IGOV;
double d_modelPar_IGOV_dX;
bool modelPar_given_IGOV;
double modelPar_IGOVD;
double d_modelPar_IGOVD_dX;
bool modelPar_given_IGOVD;
double modelPar_STIG;
double d_modelPar_STIG_dX;
bool modelPar_given_STIG;
double modelPar_GC2;
double d_modelPar_GC2_dX;
bool modelPar_given_GC2;
double modelPar_GC3;
double d_modelPar_GC3_dX;
bool modelPar_given_GC3;
double modelPar_CHIB;
double d_modelPar_CHIB_dX;
bool modelPar_given_CHIB;
double modelPar_AGIDL;
double d_modelPar_AGIDL_dX;
bool modelPar_given_AGIDL;
double modelPar_AGIDLD;
double d_modelPar_AGIDLD_dX;
bool modelPar_given_AGIDLD;
double modelPar_BGIDL;
double d_modelPar_BGIDL_dX;
bool modelPar_given_BGIDL;
double modelPar_BGIDLD;
double d_modelPar_BGIDLD_dX;
bool modelPar_given_BGIDLD;
double modelPar_STBGIDL;
double d_modelPar_STBGIDL_dX;
bool modelPar_given_STBGIDL;
double modelPar_STBGIDLD;
double d_modelPar_STBGIDLD_dX;
bool modelPar_given_STBGIDLD;
double modelPar_CGIDL;
double d_modelPar_CGIDL_dX;
bool modelPar_given_CGIDL;
double modelPar_CGIDLD;
double d_modelPar_CGIDLD_dX;
bool modelPar_given_CGIDLD;
double modelPar_COX;
double d_modelPar_COX_dX;
bool modelPar_given_COX;
double modelPar_CGOV;
double d_modelPar_CGOV_dX;
bool modelPar_given_CGOV;
double modelPar_CGOVD;
double d_modelPar_CGOVD_dX;
bool modelPar_given_CGOVD;
double modelPar_CGBOV;
double d_modelPar_CGBOV_dX;
bool modelPar_given_CGBOV;
double modelPar_CFR;
double d_modelPar_CFR_dX;
bool modelPar_given_CFR;
double modelPar_CFRD;
double d_modelPar_CFRD_dX;
bool modelPar_given_CFRD;
double modelPar_FNT;
double d_modelPar_FNT_dX;
bool modelPar_given_FNT;
double modelPar_FNTEXC;
double d_modelPar_FNTEXC_dX;
bool modelPar_given_FNTEXC;
double modelPar_NFA;
double d_modelPar_NFA_dX;
bool modelPar_given_NFA;
double modelPar_NFB;
double d_modelPar_NFB_dX;
bool modelPar_given_NFB;
double modelPar_NFC;
double d_modelPar_NFC_dX;
bool modelPar_given_NFC;
double modelPar_EF;
double d_modelPar_EF_dX;
bool modelPar_given_EF;
double modelPar_VFBEDGE;
double d_modelPar_VFBEDGE_dX;
bool modelPar_given_VFBEDGE;
double modelPar_STVFBEDGE;
double d_modelPar_STVFBEDGE_dX;
bool modelPar_given_STVFBEDGE;
double modelPar_DPHIBEDGE;
double d_modelPar_DPHIBEDGE_dX;
bool modelPar_given_DPHIBEDGE;
double modelPar_NEFFEDGE;
double d_modelPar_NEFFEDGE_dX;
bool modelPar_given_NEFFEDGE;
double modelPar_CTEDGE;
double d_modelPar_CTEDGE_dX;
bool modelPar_given_CTEDGE;
double modelPar_BETNEDGE;
double d_modelPar_BETNEDGE_dX;
bool modelPar_given_BETNEDGE;
double modelPar_STBETEDGE;
double d_modelPar_STBETEDGE_dX;
bool modelPar_given_STBETEDGE;
double modelPar_PSCEEDGE;
double d_modelPar_PSCEEDGE_dX;
bool modelPar_given_PSCEEDGE;
double modelPar_PSCEBEDGE;
double d_modelPar_PSCEBEDGE_dX;
bool modelPar_given_PSCEBEDGE;
double modelPar_PSCEDEDGE;
double d_modelPar_PSCEDEDGE_dX;
bool modelPar_given_PSCEDEDGE;
double modelPar_CFEDGE;
double d_modelPar_CFEDGE_dX;
bool modelPar_given_CFEDGE;
double modelPar_CFDEDGE;
double d_modelPar_CFDEDGE_dX;
bool modelPar_given_CFDEDGE;
double modelPar_CFBEDGE;
double d_modelPar_CFBEDGE_dX;
bool modelPar_given_CFBEDGE;
double modelPar_FNTEDGE;
double d_modelPar_FNTEDGE_dX;
bool modelPar_given_FNTEDGE;
double modelPar_NFAEDGE;
double d_modelPar_NFAEDGE_dX;
bool modelPar_given_NFAEDGE;
double modelPar_NFBEDGE;
double d_modelPar_NFBEDGE_dX;
bool modelPar_given_NFBEDGE;
double modelPar_NFCEDGE;
double d_modelPar_NFCEDGE_dX;
bool modelPar_given_NFCEDGE;
double modelPar_EFEDGE;
double d_modelPar_EFEDGE_dX;
bool modelPar_given_EFEDGE;
double modelPar_RG;
double d_modelPar_RG_dX;
bool modelPar_given_RG;
double modelPar_RSE;
double d_modelPar_RSE_dX;
bool modelPar_given_RSE;
double modelPar_RDE;
double d_modelPar_RDE_dX;
bool modelPar_given_RDE;
double modelPar_RBULK;
double d_modelPar_RBULK_dX;
bool modelPar_given_RBULK;
double modelPar_RWELL;
double d_modelPar_RWELL_dX;
bool modelPar_given_RWELL;
double modelPar_RJUNS;
double d_modelPar_RJUNS_dX;
bool modelPar_given_RJUNS;
double modelPar_RJUND;
double d_modelPar_RJUND_dX;
bool modelPar_given_RJUND;
double modelPar_RTH;
double d_modelPar_RTH_dX;
bool modelPar_given_RTH;
double modelPar_CTH;
double d_modelPar_CTH_dX;
bool modelPar_given_CTH;
double modelPar_STRTH;
double d_modelPar_STRTH_dX;
bool modelPar_given_STRTH;
double modelPar_POVFB;
double d_modelPar_POVFB_dX;
bool modelPar_given_POVFB;
double modelPar_PLVFB;
double d_modelPar_PLVFB_dX;
bool modelPar_given_PLVFB;
double modelPar_PWVFB;
double d_modelPar_PWVFB_dX;
bool modelPar_given_PWVFB;
double modelPar_PLWVFB;
double d_modelPar_PLWVFB_dX;
bool modelPar_given_PLWVFB;
double modelPar_POSTVFB;
double d_modelPar_POSTVFB_dX;
bool modelPar_given_POSTVFB;
double modelPar_PLSTVFB;
double d_modelPar_PLSTVFB_dX;
bool modelPar_given_PLSTVFB;
double modelPar_PWSTVFB;
double d_modelPar_PWSTVFB_dX;
bool modelPar_given_PWSTVFB;
double modelPar_PLWSTVFB;
double d_modelPar_PLWSTVFB_dX;
bool modelPar_given_PLWSTVFB;
double modelPar_POTOX;
double d_modelPar_POTOX_dX;
bool modelPar_given_POTOX;
double modelPar_POEPSROX;
double d_modelPar_POEPSROX_dX;
bool modelPar_given_POEPSROX;
double modelPar_PONEFF;
double d_modelPar_PONEFF_dX;
bool modelPar_given_PONEFF;
double modelPar_PLNEFF;
double d_modelPar_PLNEFF_dX;
bool modelPar_given_PLNEFF;
double modelPar_PWNEFF;
double d_modelPar_PWNEFF_dX;
bool modelPar_given_PWNEFF;
double modelPar_PLWNEFF;
double d_modelPar_PLWNEFF_dX;
bool modelPar_given_PLWNEFF;
double modelPar_POFACNEFFAC;
double d_modelPar_POFACNEFFAC_dX;
bool modelPar_given_POFACNEFFAC;
double modelPar_PLFACNEFFAC;
double d_modelPar_PLFACNEFFAC_dX;
bool modelPar_given_PLFACNEFFAC;
double modelPar_PWFACNEFFAC;
double d_modelPar_PWFACNEFFAC_dX;
bool modelPar_given_PWFACNEFFAC;
double modelPar_PLWFACNEFFAC;
double d_modelPar_PLWFACNEFFAC_dX;
bool modelPar_given_PLWFACNEFFAC;
double modelPar_POGFACNUD;
double d_modelPar_POGFACNUD_dX;
bool modelPar_given_POGFACNUD;
double modelPar_PLGFACNUD;
double d_modelPar_PLGFACNUD_dX;
bool modelPar_given_PLGFACNUD;
double modelPar_PWGFACNUD;
double d_modelPar_PWGFACNUD_dX;
bool modelPar_given_PWGFACNUD;
double modelPar_PLWGFACNUD;
double d_modelPar_PLWGFACNUD_dX;
bool modelPar_given_PLWGFACNUD;
double modelPar_POVSBNUD;
double d_modelPar_POVSBNUD_dX;
bool modelPar_given_POVSBNUD;
double modelPar_PODVSBNUD;
double d_modelPar_PODVSBNUD_dX;
bool modelPar_given_PODVSBNUD;
double modelPar_POVNSUB;
double d_modelPar_POVNSUB_dX;
bool modelPar_given_POVNSUB;
double modelPar_PONSLP;
double d_modelPar_PONSLP_dX;
bool modelPar_given_PONSLP;
double modelPar_PODNSUB;
double d_modelPar_PODNSUB_dX;
bool modelPar_given_PODNSUB;
double modelPar_PODPHIB;
double d_modelPar_PODPHIB_dX;
bool modelPar_given_PODPHIB;
double modelPar_PLDPHIB;
double d_modelPar_PLDPHIB_dX;
bool modelPar_given_PLDPHIB;
double modelPar_PWDPHIB;
double d_modelPar_PWDPHIB_dX;
bool modelPar_given_PWDPHIB;
double modelPar_PLWDPHIB;
double d_modelPar_PLWDPHIB_dX;
bool modelPar_given_PLWDPHIB;
double modelPar_PODELVTAC;
double d_modelPar_PODELVTAC_dX;
bool modelPar_given_PODELVTAC;
double modelPar_PLDELVTAC;
double d_modelPar_PLDELVTAC_dX;
bool modelPar_given_PLDELVTAC;
double modelPar_PWDELVTAC;
double d_modelPar_PWDELVTAC_dX;
bool modelPar_given_PWDELVTAC;
double modelPar_PLWDELVTAC;
double d_modelPar_PLWDELVTAC_dX;
bool modelPar_given_PLWDELVTAC;
double modelPar_PONP;
double d_modelPar_PONP_dX;
bool modelPar_given_PONP;
double modelPar_PLNP;
double d_modelPar_PLNP_dX;
bool modelPar_given_PLNP;
double modelPar_PWNP;
double d_modelPar_PWNP_dX;
bool modelPar_given_PWNP;
double modelPar_PLWNP;
double d_modelPar_PLWNP_dX;
bool modelPar_given_PLWNP;
double modelPar_POCT;
double d_modelPar_POCT_dX;
bool modelPar_given_POCT;
double modelPar_PLCT;
double d_modelPar_PLCT_dX;
bool modelPar_given_PLCT;
double modelPar_PWCT;
double d_modelPar_PWCT_dX;
bool modelPar_given_PWCT;
double modelPar_PLWCT;
double d_modelPar_PLWCT_dX;
bool modelPar_given_PLWCT;
double modelPar_POTOXOV;
double d_modelPar_POTOXOV_dX;
bool modelPar_given_POTOXOV;
double modelPar_POTOXOVD;
double d_modelPar_POTOXOVD_dX;
bool modelPar_given_POTOXOVD;
double modelPar_PONOV;
double d_modelPar_PONOV_dX;
bool modelPar_given_PONOV;
double modelPar_PLNOV;
double d_modelPar_PLNOV_dX;
bool modelPar_given_PLNOV;
double modelPar_PWNOV;
double d_modelPar_PWNOV_dX;
bool modelPar_given_PWNOV;
double modelPar_PLWNOV;
double d_modelPar_PLWNOV_dX;
bool modelPar_given_PLWNOV;
double modelPar_PONOVD;
double d_modelPar_PONOVD_dX;
bool modelPar_given_PONOVD;
double modelPar_PLNOVD;
double d_modelPar_PLNOVD_dX;
bool modelPar_given_PLNOVD;
double modelPar_PWNOVD;
double d_modelPar_PWNOVD_dX;
bool modelPar_given_PWNOVD;
double modelPar_PLWNOVD;
double d_modelPar_PLWNOVD_dX;
bool modelPar_given_PLWNOVD;
double modelPar_POCF;
double d_modelPar_POCF_dX;
bool modelPar_given_POCF;
double modelPar_PLCF;
double d_modelPar_PLCF_dX;
bool modelPar_given_PLCF;
double modelPar_PWCF;
double d_modelPar_PWCF_dX;
bool modelPar_given_PWCF;
double modelPar_PLWCF;
double d_modelPar_PLWCF_dX;
bool modelPar_given_PLWCF;
double modelPar_POCFD;
double d_modelPar_POCFD_dX;
bool modelPar_given_POCFD;
double modelPar_POCFB;
double d_modelPar_POCFB_dX;
bool modelPar_given_POCFB;
double modelPar_POPSCE;
double d_modelPar_POPSCE_dX;
bool modelPar_given_POPSCE;
double modelPar_PLPSCE;
double d_modelPar_PLPSCE_dX;
bool modelPar_given_PLPSCE;
double modelPar_PWPSCE;
double d_modelPar_PWPSCE_dX;
bool modelPar_given_PWPSCE;
double modelPar_PLWPSCE;
double d_modelPar_PLWPSCE_dX;
bool modelPar_given_PLWPSCE;
double modelPar_POPSCEB;
double d_modelPar_POPSCEB_dX;
bool modelPar_given_POPSCEB;
double modelPar_POPSCED;
double d_modelPar_POPSCED_dX;
bool modelPar_given_POPSCED;
double modelPar_POBETN;
double d_modelPar_POBETN_dX;
bool modelPar_given_POBETN;
double modelPar_PLBETN;
double d_modelPar_PLBETN_dX;
bool modelPar_given_PLBETN;
double modelPar_PWBETN;
double d_modelPar_PWBETN_dX;
bool modelPar_given_PWBETN;
double modelPar_PLWBETN;
double d_modelPar_PLWBETN_dX;
bool modelPar_given_PLWBETN;
double modelPar_POSTBET;
double d_modelPar_POSTBET_dX;
bool modelPar_given_POSTBET;
double modelPar_PLSTBET;
double d_modelPar_PLSTBET_dX;
bool modelPar_given_PLSTBET;
double modelPar_PWSTBET;
double d_modelPar_PWSTBET_dX;
bool modelPar_given_PWSTBET;
double modelPar_PLWSTBET;
double d_modelPar_PLWSTBET_dX;
bool modelPar_given_PLWSTBET;
double modelPar_POMUE;
double d_modelPar_POMUE_dX;
bool modelPar_given_POMUE;
double modelPar_PLMUE;
double d_modelPar_PLMUE_dX;
bool modelPar_given_PLMUE;
double modelPar_PWMUE;
double d_modelPar_PWMUE_dX;
bool modelPar_given_PWMUE;
double modelPar_PLWMUE;
double d_modelPar_PLWMUE_dX;
bool modelPar_given_PLWMUE;
double modelPar_POSTMUE;
double d_modelPar_POSTMUE_dX;
bool modelPar_given_POSTMUE;
double modelPar_POTHEMU;
double d_modelPar_POTHEMU_dX;
bool modelPar_given_POTHEMU;
double modelPar_POSTTHEMU;
double d_modelPar_POSTTHEMU_dX;
bool modelPar_given_POSTTHEMU;
double modelPar_POCS;
double d_modelPar_POCS_dX;
bool modelPar_given_POCS;
double modelPar_PLCS;
double d_modelPar_PLCS_dX;
bool modelPar_given_PLCS;
double modelPar_PWCS;
double d_modelPar_PWCS_dX;
bool modelPar_given_PWCS;
double modelPar_PLWCS;
double d_modelPar_PLWCS_dX;
bool modelPar_given_PLWCS;
double modelPar_POSTCS;
double d_modelPar_POSTCS_dX;
bool modelPar_given_POSTCS;
double modelPar_POXCOR;
double d_modelPar_POXCOR_dX;
bool modelPar_given_POXCOR;
double modelPar_PLXCOR;
double d_modelPar_PLXCOR_dX;
bool modelPar_given_PLXCOR;
double modelPar_PWXCOR;
double d_modelPar_PWXCOR_dX;
bool modelPar_given_PWXCOR;
double modelPar_PLWXCOR;
double d_modelPar_PLWXCOR_dX;
bool modelPar_given_PLWXCOR;
double modelPar_POSTXCOR;
double d_modelPar_POSTXCOR_dX;
bool modelPar_given_POSTXCOR;
double modelPar_POFETA;
double d_modelPar_POFETA_dX;
bool modelPar_given_POFETA;
double modelPar_PORS;
double d_modelPar_PORS_dX;
bool modelPar_given_PORS;
double modelPar_PLRS;
double d_modelPar_PLRS_dX;
bool modelPar_given_PLRS;
double modelPar_PWRS;
double d_modelPar_PWRS_dX;
bool modelPar_given_PWRS;
double modelPar_PLWRS;
double d_modelPar_PLWRS_dX;
bool modelPar_given_PLWRS;
double modelPar_POSTRS;
double d_modelPar_POSTRS_dX;
bool modelPar_given_POSTRS;
double modelPar_PORSB;
double d_modelPar_PORSB_dX;
bool modelPar_given_PORSB;
double modelPar_PORSG;
double d_modelPar_PORSG_dX;
bool modelPar_given_PORSG;
double modelPar_POTHESAT;
double d_modelPar_POTHESAT_dX;
bool modelPar_given_POTHESAT;
double modelPar_PLTHESAT;
double d_modelPar_PLTHESAT_dX;
bool modelPar_given_PLTHESAT;
double modelPar_PWTHESAT;
double d_modelPar_PWTHESAT_dX;
bool modelPar_given_PWTHESAT;
double modelPar_PLWTHESAT;
double d_modelPar_PLWTHESAT_dX;
bool modelPar_given_PLWTHESAT;
double modelPar_POSTTHESAT;
double d_modelPar_POSTTHESAT_dX;
bool modelPar_given_POSTTHESAT;
double modelPar_PLSTTHESAT;
double d_modelPar_PLSTTHESAT_dX;
bool modelPar_given_PLSTTHESAT;
double modelPar_PWSTTHESAT;
double d_modelPar_PWSTTHESAT_dX;
bool modelPar_given_PWSTTHESAT;
double modelPar_PLWSTTHESAT;
double d_modelPar_PLWSTTHESAT_dX;
bool modelPar_given_PLWSTTHESAT;
double modelPar_POTHESATB;
double d_modelPar_POTHESATB_dX;
bool modelPar_given_POTHESATB;
double modelPar_PLTHESATB;
double d_modelPar_PLTHESATB_dX;
bool modelPar_given_PLTHESATB;
double modelPar_PWTHESATB;
double d_modelPar_PWTHESATB_dX;
bool modelPar_given_PWTHESATB;
double modelPar_PLWTHESATB;
double d_modelPar_PLWTHESATB_dX;
bool modelPar_given_PLWTHESATB;
double modelPar_POTHESATG;
double d_modelPar_POTHESATG_dX;
bool modelPar_given_POTHESATG;
double modelPar_PLTHESATG;
double d_modelPar_PLTHESATG_dX;
bool modelPar_given_PLTHESATG;
double modelPar_PWTHESATG;
double d_modelPar_PWTHESATG_dX;
bool modelPar_given_PWTHESATG;
double modelPar_PLWTHESATG;
double d_modelPar_PLWTHESATG_dX;
bool modelPar_given_PLWTHESATG;
double modelPar_POAX;
double d_modelPar_POAX_dX;
bool modelPar_given_POAX;
double modelPar_PLAX;
double d_modelPar_PLAX_dX;
bool modelPar_given_PLAX;
double modelPar_PWAX;
double d_modelPar_PWAX_dX;
bool modelPar_given_PWAX;
double modelPar_PLWAX;
double d_modelPar_PLWAX_dX;
bool modelPar_given_PLWAX;
double modelPar_POALP;
double d_modelPar_POALP_dX;
bool modelPar_given_POALP;
double modelPar_PLALP;
double d_modelPar_PLALP_dX;
bool modelPar_given_PLALP;
double modelPar_PWALP;
double d_modelPar_PWALP_dX;
bool modelPar_given_PWALP;
double modelPar_PLWALP;
double d_modelPar_PLWALP_dX;
bool modelPar_given_PLWALP;
double modelPar_POALP1;
double d_modelPar_POALP1_dX;
bool modelPar_given_POALP1;
double modelPar_PLALP1;
double d_modelPar_PLALP1_dX;
bool modelPar_given_PLALP1;
double modelPar_PWALP1;
double d_modelPar_PWALP1_dX;
bool modelPar_given_PWALP1;
double modelPar_PLWALP1;
double d_modelPar_PLWALP1_dX;
bool modelPar_given_PLWALP1;
double modelPar_POALP2;
double d_modelPar_POALP2_dX;
bool modelPar_given_POALP2;
double modelPar_PLALP2;
double d_modelPar_PLALP2_dX;
bool modelPar_given_PLALP2;
double modelPar_PWALP2;
double d_modelPar_PWALP2_dX;
bool modelPar_given_PWALP2;
double modelPar_PLWALP2;
double d_modelPar_PLWALP2_dX;
bool modelPar_given_PLWALP2;
double modelPar_POVP;
double d_modelPar_POVP_dX;
bool modelPar_given_POVP;
double modelPar_POA1;
double d_modelPar_POA1_dX;
bool modelPar_given_POA1;
double modelPar_PLA1;
double d_modelPar_PLA1_dX;
bool modelPar_given_PLA1;
double modelPar_PWA1;
double d_modelPar_PWA1_dX;
bool modelPar_given_PWA1;
double modelPar_PLWA1;
double d_modelPar_PLWA1_dX;
bool modelPar_given_PLWA1;
double modelPar_POA2;
double d_modelPar_POA2_dX;
bool modelPar_given_POA2;
double modelPar_POSTA2;
double d_modelPar_POSTA2_dX;
bool modelPar_given_POSTA2;
double modelPar_POA3;
double d_modelPar_POA3_dX;
bool modelPar_given_POA3;
double modelPar_PLA3;
double d_modelPar_PLA3_dX;
bool modelPar_given_PLA3;
double modelPar_PWA3;
double d_modelPar_PWA3_dX;
bool modelPar_given_PWA3;
double modelPar_PLWA3;
double d_modelPar_PLWA3_dX;
bool modelPar_given_PLWA3;
double modelPar_POA4;
double d_modelPar_POA4_dX;
bool modelPar_given_POA4;
double modelPar_PLA4;
double d_modelPar_PLA4_dX;
bool modelPar_given_PLA4;
double modelPar_PWA4;
double d_modelPar_PWA4_dX;
bool modelPar_given_PWA4;
double modelPar_PLWA4;
double d_modelPar_PLWA4_dX;
bool modelPar_given_PLWA4;
double modelPar_POGCO;
double d_modelPar_POGCO_dX;
bool modelPar_given_POGCO;
double modelPar_POIGINV;
double d_modelPar_POIGINV_dX;
bool modelPar_given_POIGINV;
double modelPar_PLIGINV;
double d_modelPar_PLIGINV_dX;
bool modelPar_given_PLIGINV;
double modelPar_PWIGINV;
double d_modelPar_PWIGINV_dX;
bool modelPar_given_PWIGINV;
double modelPar_PLWIGINV;
double d_modelPar_PLWIGINV_dX;
bool modelPar_given_PLWIGINV;
double modelPar_POIGOV;
double d_modelPar_POIGOV_dX;
bool modelPar_given_POIGOV;
double modelPar_PLIGOV;
double d_modelPar_PLIGOV_dX;
bool modelPar_given_PLIGOV;
double modelPar_PWIGOV;
double d_modelPar_PWIGOV_dX;
bool modelPar_given_PWIGOV;
double modelPar_PLWIGOV;
double d_modelPar_PLWIGOV_dX;
bool modelPar_given_PLWIGOV;
double modelPar_POIGOVD;
double d_modelPar_POIGOVD_dX;
bool modelPar_given_POIGOVD;
double modelPar_PLIGOVD;
double d_modelPar_PLIGOVD_dX;
bool modelPar_given_PLIGOVD;
double modelPar_PWIGOVD;
double d_modelPar_PWIGOVD_dX;
bool modelPar_given_PWIGOVD;
double modelPar_PLWIGOVD;
double d_modelPar_PLWIGOVD_dX;
bool modelPar_given_PLWIGOVD;
double modelPar_POSTIG;
double d_modelPar_POSTIG_dX;
bool modelPar_given_POSTIG;
double modelPar_POGC2;
double d_modelPar_POGC2_dX;
bool modelPar_given_POGC2;
double modelPar_POGC3;
double d_modelPar_POGC3_dX;
bool modelPar_given_POGC3;
double modelPar_POCHIB;
double d_modelPar_POCHIB_dX;
bool modelPar_given_POCHIB;
double modelPar_POAGIDL;
double d_modelPar_POAGIDL_dX;
bool modelPar_given_POAGIDL;
double modelPar_PLAGIDL;
double d_modelPar_PLAGIDL_dX;
bool modelPar_given_PLAGIDL;
double modelPar_PWAGIDL;
double d_modelPar_PWAGIDL_dX;
bool modelPar_given_PWAGIDL;
double modelPar_PLWAGIDL;
double d_modelPar_PLWAGIDL_dX;
bool modelPar_given_PLWAGIDL;
double modelPar_POAGIDLD;
double d_modelPar_POAGIDLD_dX;
bool modelPar_given_POAGIDLD;
double modelPar_PLAGIDLD;
double d_modelPar_PLAGIDLD_dX;
bool modelPar_given_PLAGIDLD;
double modelPar_PWAGIDLD;
double d_modelPar_PWAGIDLD_dX;
bool modelPar_given_PWAGIDLD;
double modelPar_PLWAGIDLD;
double d_modelPar_PLWAGIDLD_dX;
bool modelPar_given_PLWAGIDLD;
double modelPar_POBGIDL;
double d_modelPar_POBGIDL_dX;
bool modelPar_given_POBGIDL;
double modelPar_POBGIDLD;
double d_modelPar_POBGIDLD_dX;
bool modelPar_given_POBGIDLD;
double modelPar_POSTBGIDL;
double d_modelPar_POSTBGIDL_dX;
bool modelPar_given_POSTBGIDL;
double modelPar_POSTBGIDLD;
double d_modelPar_POSTBGIDLD_dX;
bool modelPar_given_POSTBGIDLD;
double modelPar_POCGIDL;
double d_modelPar_POCGIDL_dX;
bool modelPar_given_POCGIDL;
double modelPar_POCGIDLD;
double d_modelPar_POCGIDLD_dX;
bool modelPar_given_POCGIDLD;
double modelPar_POCOX;
double d_modelPar_POCOX_dX;
bool modelPar_given_POCOX;
double modelPar_PLCOX;
double d_modelPar_PLCOX_dX;
bool modelPar_given_PLCOX;
double modelPar_PWCOX;
double d_modelPar_PWCOX_dX;
bool modelPar_given_PWCOX;
double modelPar_PLWCOX;
double d_modelPar_PLWCOX_dX;
bool modelPar_given_PLWCOX;
double modelPar_POCGOV;
double d_modelPar_POCGOV_dX;
bool modelPar_given_POCGOV;
double modelPar_PLCGOV;
double d_modelPar_PLCGOV_dX;
bool modelPar_given_PLCGOV;
double modelPar_PWCGOV;
double d_modelPar_PWCGOV_dX;
bool modelPar_given_PWCGOV;
double modelPar_PLWCGOV;
double d_modelPar_PLWCGOV_dX;
bool modelPar_given_PLWCGOV;
double modelPar_POCGOVD;
double d_modelPar_POCGOVD_dX;
bool modelPar_given_POCGOVD;
double modelPar_PLCGOVD;
double d_modelPar_PLCGOVD_dX;
bool modelPar_given_PLCGOVD;
double modelPar_PWCGOVD;
double d_modelPar_PWCGOVD_dX;
bool modelPar_given_PWCGOVD;
double modelPar_PLWCGOVD;
double d_modelPar_PLWCGOVD_dX;
bool modelPar_given_PLWCGOVD;
double modelPar_POCGBOV;
double d_modelPar_POCGBOV_dX;
bool modelPar_given_POCGBOV;
double modelPar_PLCGBOV;
double d_modelPar_PLCGBOV_dX;
bool modelPar_given_PLCGBOV;
double modelPar_PWCGBOV;
double d_modelPar_PWCGBOV_dX;
bool modelPar_given_PWCGBOV;
double modelPar_PLWCGBOV;
double d_modelPar_PLWCGBOV_dX;
bool modelPar_given_PLWCGBOV;
double modelPar_POCFR;
double d_modelPar_POCFR_dX;
bool modelPar_given_POCFR;
double modelPar_PLCFR;
double d_modelPar_PLCFR_dX;
bool modelPar_given_PLCFR;
double modelPar_PWCFR;
double d_modelPar_PWCFR_dX;
bool modelPar_given_PWCFR;
double modelPar_PLWCFR;
double d_modelPar_PLWCFR_dX;
bool modelPar_given_PLWCFR;
double modelPar_POCFRD;
double d_modelPar_POCFRD_dX;
bool modelPar_given_POCFRD;
double modelPar_PLCFRD;
double d_modelPar_PLCFRD_dX;
bool modelPar_given_PLCFRD;
double modelPar_PWCFRD;
double d_modelPar_PWCFRD_dX;
bool modelPar_given_PWCFRD;
double modelPar_PLWCFRD;
double d_modelPar_PLWCFRD_dX;
bool modelPar_given_PLWCFRD;
double modelPar_POFNT;
double d_modelPar_POFNT_dX;
bool modelPar_given_POFNT;
double modelPar_POFNTEXC;
double d_modelPar_POFNTEXC_dX;
bool modelPar_given_POFNTEXC;
double modelPar_PLFNTEXC;
double d_modelPar_PLFNTEXC_dX;
bool modelPar_given_PLFNTEXC;
double modelPar_PWFNTEXC;
double d_modelPar_PWFNTEXC_dX;
bool modelPar_given_PWFNTEXC;
double modelPar_PLWFNTEXC;
double d_modelPar_PLWFNTEXC_dX;
bool modelPar_given_PLWFNTEXC;
double modelPar_PONFA;
double d_modelPar_PONFA_dX;
bool modelPar_given_PONFA;
double modelPar_PLNFA;
double d_modelPar_PLNFA_dX;
bool modelPar_given_PLNFA;
double modelPar_PWNFA;
double d_modelPar_PWNFA_dX;
bool modelPar_given_PWNFA;
double modelPar_PLWNFA;
double d_modelPar_PLWNFA_dX;
bool modelPar_given_PLWNFA;
double modelPar_PONFB;
double d_modelPar_PONFB_dX;
bool modelPar_given_PONFB;
double modelPar_PLNFB;
double d_modelPar_PLNFB_dX;
bool modelPar_given_PLNFB;
double modelPar_PWNFB;
double d_modelPar_PWNFB_dX;
bool modelPar_given_PWNFB;
double modelPar_PLWNFB;
double d_modelPar_PLWNFB_dX;
bool modelPar_given_PLWNFB;
double modelPar_PONFC;
double d_modelPar_PONFC_dX;
bool modelPar_given_PONFC;
double modelPar_PLNFC;
double d_modelPar_PLNFC_dX;
bool modelPar_given_PLNFC;
double modelPar_PWNFC;
double d_modelPar_PWNFC_dX;
bool modelPar_given_PWNFC;
double modelPar_PLWNFC;
double d_modelPar_PLWNFC_dX;
bool modelPar_given_PLWNFC;
double modelPar_POEF;
double d_modelPar_POEF_dX;
bool modelPar_given_POEF;
double modelPar_POVFBEDGE;
double d_modelPar_POVFBEDGE_dX;
bool modelPar_given_POVFBEDGE;
double modelPar_POSTVFBEDGE;
double d_modelPar_POSTVFBEDGE_dX;
bool modelPar_given_POSTVFBEDGE;
double modelPar_PLSTVFBEDGE;
double d_modelPar_PLSTVFBEDGE_dX;
bool modelPar_given_PLSTVFBEDGE;
double modelPar_PWSTVFBEDGE;
double d_modelPar_PWSTVFBEDGE_dX;
bool modelPar_given_PWSTVFBEDGE;
double modelPar_PLWSTVFBEDGE;
double d_modelPar_PLWSTVFBEDGE_dX;
bool modelPar_given_PLWSTVFBEDGE;
double modelPar_PODPHIBEDGE;
double d_modelPar_PODPHIBEDGE_dX;
bool modelPar_given_PODPHIBEDGE;
double modelPar_PLDPHIBEDGE;
double d_modelPar_PLDPHIBEDGE_dX;
bool modelPar_given_PLDPHIBEDGE;
double modelPar_PWDPHIBEDGE;
double d_modelPar_PWDPHIBEDGE_dX;
bool modelPar_given_PWDPHIBEDGE;
double modelPar_PLWDPHIBEDGE;
double d_modelPar_PLWDPHIBEDGE_dX;
bool modelPar_given_PLWDPHIBEDGE;
double modelPar_PONEFFEDGE;
double d_modelPar_PONEFFEDGE_dX;
bool modelPar_given_PONEFFEDGE;
double modelPar_PLNEFFEDGE;
double d_modelPar_PLNEFFEDGE_dX;
bool modelPar_given_PLNEFFEDGE;
double modelPar_PWNEFFEDGE;
double d_modelPar_PWNEFFEDGE_dX;
bool modelPar_given_PWNEFFEDGE;
double modelPar_PLWNEFFEDGE;
double d_modelPar_PLWNEFFEDGE_dX;
bool modelPar_given_PLWNEFFEDGE;
double modelPar_POCTEDGE;
double d_modelPar_POCTEDGE_dX;
bool modelPar_given_POCTEDGE;
double modelPar_PLCTEDGE;
double d_modelPar_PLCTEDGE_dX;
bool modelPar_given_PLCTEDGE;
double modelPar_PWCTEDGE;
double d_modelPar_PWCTEDGE_dX;
bool modelPar_given_PWCTEDGE;
double modelPar_PLWCTEDGE;
double d_modelPar_PLWCTEDGE_dX;
bool modelPar_given_PLWCTEDGE;
double modelPar_POBETNEDGE;
double d_modelPar_POBETNEDGE_dX;
bool modelPar_given_POBETNEDGE;
double modelPar_PLBETNEDGE;
double d_modelPar_PLBETNEDGE_dX;
bool modelPar_given_PLBETNEDGE;
double modelPar_PWBETNEDGE;
double d_modelPar_PWBETNEDGE_dX;
bool modelPar_given_PWBETNEDGE;
double modelPar_PLWBETNEDGE;
double d_modelPar_PLWBETNEDGE_dX;
bool modelPar_given_PLWBETNEDGE;
double modelPar_POSTBETEDGE;
double d_modelPar_POSTBETEDGE_dX;
bool modelPar_given_POSTBETEDGE;
double modelPar_PLSTBETEDGE;
double d_modelPar_PLSTBETEDGE_dX;
bool modelPar_given_PLSTBETEDGE;
double modelPar_PWSTBETEDGE;
double d_modelPar_PWSTBETEDGE_dX;
bool modelPar_given_PWSTBETEDGE;
double modelPar_PLWSTBETEDGE;
double d_modelPar_PLWSTBETEDGE_dX;
bool modelPar_given_PLWSTBETEDGE;
double modelPar_POPSCEEDGE;
double d_modelPar_POPSCEEDGE_dX;
bool modelPar_given_POPSCEEDGE;
double modelPar_PLPSCEEDGE;
double d_modelPar_PLPSCEEDGE_dX;
bool modelPar_given_PLPSCEEDGE;
double modelPar_PWPSCEEDGE;
double d_modelPar_PWPSCEEDGE_dX;
bool modelPar_given_PWPSCEEDGE;
double modelPar_PLWPSCEEDGE;
double d_modelPar_PLWPSCEEDGE_dX;
bool modelPar_given_PLWPSCEEDGE;
double modelPar_POPSCEBEDGE;
double d_modelPar_POPSCEBEDGE_dX;
bool modelPar_given_POPSCEBEDGE;
double modelPar_POPSCEDEDGE;
double d_modelPar_POPSCEDEDGE_dX;
bool modelPar_given_POPSCEDEDGE;
double modelPar_POCFEDGE;
double d_modelPar_POCFEDGE_dX;
bool modelPar_given_POCFEDGE;
double modelPar_PLCFEDGE;
double d_modelPar_PLCFEDGE_dX;
bool modelPar_given_PLCFEDGE;
double modelPar_PWCFEDGE;
double d_modelPar_PWCFEDGE_dX;
bool modelPar_given_PWCFEDGE;
double modelPar_PLWCFEDGE;
double d_modelPar_PLWCFEDGE_dX;
bool modelPar_given_PLWCFEDGE;
double modelPar_POCFDEDGE;
double d_modelPar_POCFDEDGE_dX;
bool modelPar_given_POCFDEDGE;
double modelPar_POCFBEDGE;
double d_modelPar_POCFBEDGE_dX;
bool modelPar_given_POCFBEDGE;
double modelPar_POFNTEDGE;
double d_modelPar_POFNTEDGE_dX;
bool modelPar_given_POFNTEDGE;
double modelPar_PONFAEDGE;
double d_modelPar_PONFAEDGE_dX;
bool modelPar_given_PONFAEDGE;
double modelPar_PLNFAEDGE;
double d_modelPar_PLNFAEDGE_dX;
bool modelPar_given_PLNFAEDGE;
double modelPar_PWNFAEDGE;
double d_modelPar_PWNFAEDGE_dX;
bool modelPar_given_PWNFAEDGE;
double modelPar_PLWNFAEDGE;
double d_modelPar_PLWNFAEDGE_dX;
bool modelPar_given_PLWNFAEDGE;
double modelPar_PONFBEDGE;
double d_modelPar_PONFBEDGE_dX;
bool modelPar_given_PONFBEDGE;
double modelPar_PLNFBEDGE;
double d_modelPar_PLNFBEDGE_dX;
bool modelPar_given_PLNFBEDGE;
double modelPar_PWNFBEDGE;
double d_modelPar_PWNFBEDGE_dX;
bool modelPar_given_PWNFBEDGE;
double modelPar_PLWNFBEDGE;
double d_modelPar_PLWNFBEDGE_dX;
bool modelPar_given_PLWNFBEDGE;
double modelPar_PONFCEDGE;
double d_modelPar_PONFCEDGE_dX;
bool modelPar_given_PONFCEDGE;
double modelPar_PLNFCEDGE;
double d_modelPar_PLNFCEDGE_dX;
bool modelPar_given_PLNFCEDGE;
double modelPar_PWNFCEDGE;
double d_modelPar_PWNFCEDGE_dX;
bool modelPar_given_PWNFCEDGE;
double modelPar_PLWNFCEDGE;
double d_modelPar_PLWNFCEDGE_dX;
bool modelPar_given_PLWNFCEDGE;
double modelPar_POEFEDGE;
double d_modelPar_POEFEDGE_dX;
bool modelPar_given_POEFEDGE;
double modelPar_POKVTHOWE;
double d_modelPar_POKVTHOWE_dX;
bool modelPar_given_POKVTHOWE;
double modelPar_PLKVTHOWE;
double d_modelPar_PLKVTHOWE_dX;
bool modelPar_given_PLKVTHOWE;
double modelPar_PWKVTHOWE;
double d_modelPar_PWKVTHOWE_dX;
bool modelPar_given_PWKVTHOWE;
double modelPar_PLWKVTHOWE;
double d_modelPar_PLWKVTHOWE_dX;
bool modelPar_given_PLWKVTHOWE;
double modelPar_POKUOWE;
double d_modelPar_POKUOWE_dX;
bool modelPar_given_POKUOWE;
double modelPar_PLKUOWE;
double d_modelPar_PLKUOWE_dX;
bool modelPar_given_PLKUOWE;
double modelPar_PWKUOWE;
double d_modelPar_PWKUOWE_dX;
bool modelPar_given_PWKUOWE;
double modelPar_PLWKUOWE;
double d_modelPar_PLWKUOWE_dX;
bool modelPar_given_PLWKUOWE;
double modelPar_LMIN;
double d_modelPar_LMIN_dX;
bool modelPar_given_LMIN;
double modelPar_LMAX;
double d_modelPar_LMAX_dX;
bool modelPar_given_LMAX;
double modelPar_WMIN;
double d_modelPar_WMIN_dX;
bool modelPar_given_WMIN;
double modelPar_WMAX;
double d_modelPar_WMAX_dX;
bool modelPar_given_WMAX;
double modelPar_LVARO;
double d_modelPar_LVARO_dX;
bool modelPar_given_LVARO;
double modelPar_LVARL;
double d_modelPar_LVARL_dX;
bool modelPar_given_LVARL;
double modelPar_LVARW;
double d_modelPar_LVARW_dX;
bool modelPar_given_LVARW;
double modelPar_LAP;
double d_modelPar_LAP_dX;
bool modelPar_given_LAP;
double modelPar_WVARO;
double d_modelPar_WVARO_dX;
bool modelPar_given_WVARO;
double modelPar_WVARL;
double d_modelPar_WVARL_dX;
bool modelPar_given_WVARL;
double modelPar_WVARW;
double d_modelPar_WVARW_dX;
bool modelPar_given_WVARW;
double modelPar_WOT;
double d_modelPar_WOT_dX;
bool modelPar_given_WOT;
double modelPar_DLQ;
double d_modelPar_DLQ_dX;
bool modelPar_given_DLQ;
double modelPar_DWQ;
double d_modelPar_DWQ_dX;
bool modelPar_given_DWQ;
double modelPar_VFBO;
double d_modelPar_VFBO_dX;
bool modelPar_given_VFBO;
double modelPar_VFBL;
double d_modelPar_VFBL_dX;
bool modelPar_given_VFBL;
double modelPar_VFBW;
double d_modelPar_VFBW_dX;
bool modelPar_given_VFBW;
double modelPar_VFBLW;
double d_modelPar_VFBLW_dX;
bool modelPar_given_VFBLW;
double modelPar_STVFBO;
double d_modelPar_STVFBO_dX;
bool modelPar_given_STVFBO;
double modelPar_STVFBL;
double d_modelPar_STVFBL_dX;
bool modelPar_given_STVFBL;
double modelPar_STVFBW;
double d_modelPar_STVFBW_dX;
bool modelPar_given_STVFBW;
double modelPar_STVFBLW;
double d_modelPar_STVFBLW_dX;
bool modelPar_given_STVFBLW;
double modelPar_TOXO;
double d_modelPar_TOXO_dX;
bool modelPar_given_TOXO;
double modelPar_EPSROXO;
double d_modelPar_EPSROXO_dX;
bool modelPar_given_EPSROXO;
double modelPar_NSUBO;
double d_modelPar_NSUBO_dX;
bool modelPar_given_NSUBO;
double modelPar_NSUBW;
double d_modelPar_NSUBW_dX;
bool modelPar_given_NSUBW;
double modelPar_WSEG;
double d_modelPar_WSEG_dX;
bool modelPar_given_WSEG;
double modelPar_NPCK;
double d_modelPar_NPCK_dX;
bool modelPar_given_NPCK;
double modelPar_NPCKW;
double d_modelPar_NPCKW_dX;
bool modelPar_given_NPCKW;
double modelPar_WSEGP;
double d_modelPar_WSEGP_dX;
bool modelPar_given_WSEGP;
double modelPar_LPCK;
double d_modelPar_LPCK_dX;
bool modelPar_given_LPCK;
double modelPar_LPCKW;
double d_modelPar_LPCKW_dX;
bool modelPar_given_LPCKW;
double modelPar_FOL1;
double d_modelPar_FOL1_dX;
bool modelPar_given_FOL1;
double modelPar_FOL2;
double d_modelPar_FOL2_dX;
bool modelPar_given_FOL2;
double modelPar_FACNEFFACO;
double d_modelPar_FACNEFFACO_dX;
bool modelPar_given_FACNEFFACO;
double modelPar_FACNEFFACL;
double d_modelPar_FACNEFFACL_dX;
bool modelPar_given_FACNEFFACL;
double modelPar_FACNEFFACW;
double d_modelPar_FACNEFFACW_dX;
bool modelPar_given_FACNEFFACW;
double modelPar_FACNEFFACLW;
double d_modelPar_FACNEFFACLW_dX;
bool modelPar_given_FACNEFFACLW;
double modelPar_GFACNUDO;
double d_modelPar_GFACNUDO_dX;
bool modelPar_given_GFACNUDO;
double modelPar_GFACNUDL;
double d_modelPar_GFACNUDL_dX;
bool modelPar_given_GFACNUDL;
double modelPar_GFACNUDLEXP;
double d_modelPar_GFACNUDLEXP_dX;
bool modelPar_given_GFACNUDLEXP;
double modelPar_GFACNUDW;
double d_modelPar_GFACNUDW_dX;
bool modelPar_given_GFACNUDW;
double modelPar_GFACNUDLW;
double d_modelPar_GFACNUDLW_dX;
bool modelPar_given_GFACNUDLW;
double modelPar_VSBNUDO;
double d_modelPar_VSBNUDO_dX;
bool modelPar_given_VSBNUDO;
double modelPar_DVSBNUDO;
double d_modelPar_DVSBNUDO_dX;
bool modelPar_given_DVSBNUDO;
double modelPar_VNSUBO;
double d_modelPar_VNSUBO_dX;
bool modelPar_given_VNSUBO;
double modelPar_NSLPO;
double d_modelPar_NSLPO_dX;
bool modelPar_given_NSLPO;
double modelPar_DNSUBO;
double d_modelPar_DNSUBO_dX;
bool modelPar_given_DNSUBO;
double modelPar_DPHIBO;
double d_modelPar_DPHIBO_dX;
bool modelPar_given_DPHIBO;
double modelPar_DPHIBL;
double d_modelPar_DPHIBL_dX;
bool modelPar_given_DPHIBL;
double modelPar_DPHIBLEXP;
double d_modelPar_DPHIBLEXP_dX;
bool modelPar_given_DPHIBLEXP;
double modelPar_DPHIBW;
double d_modelPar_DPHIBW_dX;
bool modelPar_given_DPHIBW;
double modelPar_DPHIBLW;
double d_modelPar_DPHIBLW_dX;
bool modelPar_given_DPHIBLW;
double modelPar_DELVTACO;
double d_modelPar_DELVTACO_dX;
bool modelPar_given_DELVTACO;
double modelPar_DELVTACL;
double d_modelPar_DELVTACL_dX;
bool modelPar_given_DELVTACL;
double modelPar_DELVTACLEXP;
double d_modelPar_DELVTACLEXP_dX;
bool modelPar_given_DELVTACLEXP;
double modelPar_DELVTACW;
double d_modelPar_DELVTACW_dX;
bool modelPar_given_DELVTACW;
double modelPar_DELVTACLW;
double d_modelPar_DELVTACLW_dX;
bool modelPar_given_DELVTACLW;
double modelPar_NPO;
double d_modelPar_NPO_dX;
bool modelPar_given_NPO;
double modelPar_NPL;
double d_modelPar_NPL_dX;
bool modelPar_given_NPL;
double modelPar_CTO;
double d_modelPar_CTO_dX;
bool modelPar_given_CTO;
double modelPar_CTL;
double d_modelPar_CTL_dX;
bool modelPar_given_CTL;
double modelPar_CTLEXP;
double d_modelPar_CTLEXP_dX;
bool modelPar_given_CTLEXP;
double modelPar_CTW;
double d_modelPar_CTW_dX;
bool modelPar_given_CTW;
double modelPar_CTLW;
double d_modelPar_CTLW_dX;
bool modelPar_given_CTLW;
double modelPar_TOXOVO;
double d_modelPar_TOXOVO_dX;
bool modelPar_given_TOXOVO;
double modelPar_TOXOVDO;
double d_modelPar_TOXOVDO_dX;
bool modelPar_given_TOXOVDO;
double modelPar_LOV;
double d_modelPar_LOV_dX;
bool modelPar_given_LOV;
double modelPar_LOVD;
double d_modelPar_LOVD_dX;
bool modelPar_given_LOVD;
double modelPar_NOVO;
double d_modelPar_NOVO_dX;
bool modelPar_given_NOVO;
double modelPar_NOVDO;
double d_modelPar_NOVDO_dX;
bool modelPar_given_NOVDO;
double modelPar_CFL;
double d_modelPar_CFL_dX;
bool modelPar_given_CFL;
double modelPar_CFLEXP;
double d_modelPar_CFLEXP_dX;
bool modelPar_given_CFLEXP;
double modelPar_CFW;
double d_modelPar_CFW_dX;
bool modelPar_given_CFW;
double modelPar_CFDO;
double d_modelPar_CFDO_dX;
bool modelPar_given_CFDO;
double modelPar_CFBO;
double d_modelPar_CFBO_dX;
bool modelPar_given_CFBO;
double modelPar_PSCEL;
double d_modelPar_PSCEL_dX;
bool modelPar_given_PSCEL;
double modelPar_PSCELEXP;
double d_modelPar_PSCELEXP_dX;
bool modelPar_given_PSCELEXP;
double modelPar_PSCEW;
double d_modelPar_PSCEW_dX;
bool modelPar_given_PSCEW;
double modelPar_PSCEBO;
double d_modelPar_PSCEBO_dX;
bool modelPar_given_PSCEBO;
double modelPar_PSCEDO;
double d_modelPar_PSCEDO_dX;
bool modelPar_given_PSCEDO;
double modelPar_UO;
double d_modelPar_UO_dX;
bool modelPar_given_UO;
double modelPar_FBET1;
double d_modelPar_FBET1_dX;
bool modelPar_given_FBET1;
double modelPar_FBET1W;
double d_modelPar_FBET1W_dX;
bool modelPar_given_FBET1W;
double modelPar_LP1;
double d_modelPar_LP1_dX;
bool modelPar_given_LP1;
double modelPar_LP1W;
double d_modelPar_LP1W_dX;
bool modelPar_given_LP1W;
double modelPar_FBET2;
double d_modelPar_FBET2_dX;
bool modelPar_given_FBET2;
double modelPar_LP2;
double d_modelPar_LP2_dX;
bool modelPar_given_LP2;
double modelPar_BETW1;
double d_modelPar_BETW1_dX;
bool modelPar_given_BETW1;
double modelPar_BETW2;
double d_modelPar_BETW2_dX;
bool modelPar_given_BETW2;
double modelPar_WBET;
double d_modelPar_WBET_dX;
bool modelPar_given_WBET;
double modelPar_STBETO;
double d_modelPar_STBETO_dX;
bool modelPar_given_STBETO;
double modelPar_STBETL;
double d_modelPar_STBETL_dX;
bool modelPar_given_STBETL;
double modelPar_STBETW;
double d_modelPar_STBETW_dX;
bool modelPar_given_STBETW;
double modelPar_STBETLW;
double d_modelPar_STBETLW_dX;
bool modelPar_given_STBETLW;
double modelPar_MUEO;
double d_modelPar_MUEO_dX;
bool modelPar_given_MUEO;
double modelPar_MUEW;
double d_modelPar_MUEW_dX;
bool modelPar_given_MUEW;
double modelPar_STMUEO;
double d_modelPar_STMUEO_dX;
bool modelPar_given_STMUEO;
double modelPar_THEMUO;
double d_modelPar_THEMUO_dX;
bool modelPar_given_THEMUO;
double modelPar_STTHEMUO;
double d_modelPar_STTHEMUO_dX;
bool modelPar_given_STTHEMUO;
double modelPar_CSO;
double d_modelPar_CSO_dX;
bool modelPar_given_CSO;
double modelPar_CSL;
double d_modelPar_CSL_dX;
bool modelPar_given_CSL;
double modelPar_CSLEXP;
double d_modelPar_CSLEXP_dX;
bool modelPar_given_CSLEXP;
double modelPar_CSW;
double d_modelPar_CSW_dX;
bool modelPar_given_CSW;
double modelPar_CSLW;
double d_modelPar_CSLW_dX;
bool modelPar_given_CSLW;
double modelPar_STCSO;
double d_modelPar_STCSO_dX;
bool modelPar_given_STCSO;
double modelPar_XCORO;
double d_modelPar_XCORO_dX;
bool modelPar_given_XCORO;
double modelPar_XCORL;
double d_modelPar_XCORL_dX;
bool modelPar_given_XCORL;
double modelPar_XCORW;
double d_modelPar_XCORW_dX;
bool modelPar_given_XCORW;
double modelPar_XCORLW;
double d_modelPar_XCORLW_dX;
bool modelPar_given_XCORLW;
double modelPar_STXCORO;
double d_modelPar_STXCORO_dX;
bool modelPar_given_STXCORO;
double modelPar_FETAO;
double d_modelPar_FETAO_dX;
bool modelPar_given_FETAO;
double modelPar_RSW1;
double d_modelPar_RSW1_dX;
bool modelPar_given_RSW1;
double modelPar_RSW2;
double d_modelPar_RSW2_dX;
bool modelPar_given_RSW2;
double modelPar_STRSO;
double d_modelPar_STRSO_dX;
bool modelPar_given_STRSO;
double modelPar_RSBO;
double d_modelPar_RSBO_dX;
bool modelPar_given_RSBO;
double modelPar_RSGO;
double d_modelPar_RSGO_dX;
bool modelPar_given_RSGO;
double modelPar_THESATO;
double d_modelPar_THESATO_dX;
bool modelPar_given_THESATO;
double modelPar_THESATL;
double d_modelPar_THESATL_dX;
bool modelPar_given_THESATL;
double modelPar_THESATLEXP;
double d_modelPar_THESATLEXP_dX;
bool modelPar_given_THESATLEXP;
double modelPar_THESATW;
double d_modelPar_THESATW_dX;
bool modelPar_given_THESATW;
double modelPar_THESATLW;
double d_modelPar_THESATLW_dX;
bool modelPar_given_THESATLW;
double modelPar_STTHESATO;
double d_modelPar_STTHESATO_dX;
bool modelPar_given_STTHESATO;
double modelPar_STTHESATL;
double d_modelPar_STTHESATL_dX;
bool modelPar_given_STTHESATL;
double modelPar_STTHESATW;
double d_modelPar_STTHESATW_dX;
bool modelPar_given_STTHESATW;
double modelPar_STTHESATLW;
double d_modelPar_STTHESATLW_dX;
bool modelPar_given_STTHESATLW;
double modelPar_THESATBO;
double d_modelPar_THESATBO_dX;
bool modelPar_given_THESATBO;
double modelPar_THESATGO;
double d_modelPar_THESATGO_dX;
bool modelPar_given_THESATGO;
double modelPar_AXO;
double d_modelPar_AXO_dX;
bool modelPar_given_AXO;
double modelPar_AXL;
double d_modelPar_AXL_dX;
bool modelPar_given_AXL;
double modelPar_ALPL;
double d_modelPar_ALPL_dX;
bool modelPar_given_ALPL;
double modelPar_ALPLEXP;
double d_modelPar_ALPLEXP_dX;
bool modelPar_given_ALPLEXP;
double modelPar_ALPW;
double d_modelPar_ALPW_dX;
bool modelPar_given_ALPW;
double modelPar_ALP1L1;
double d_modelPar_ALP1L1_dX;
bool modelPar_given_ALP1L1;
double modelPar_ALP1LEXP;
double d_modelPar_ALP1LEXP_dX;
bool modelPar_given_ALP1LEXP;
double modelPar_ALP1L2;
double d_modelPar_ALP1L2_dX;
bool modelPar_given_ALP1L2;
double modelPar_ALP1W;
double d_modelPar_ALP1W_dX;
bool modelPar_given_ALP1W;
double modelPar_ALP2L1;
double d_modelPar_ALP2L1_dX;
bool modelPar_given_ALP2L1;
double modelPar_ALP2LEXP;
double d_modelPar_ALP2LEXP_dX;
bool modelPar_given_ALP2LEXP;
double modelPar_ALP2L2;
double d_modelPar_ALP2L2_dX;
bool modelPar_given_ALP2L2;
double modelPar_ALP2W;
double d_modelPar_ALP2W_dX;
bool modelPar_given_ALP2W;
double modelPar_VPO;
double d_modelPar_VPO_dX;
bool modelPar_given_VPO;
double modelPar_A1O;
double d_modelPar_A1O_dX;
bool modelPar_given_A1O;
double modelPar_A1L;
double d_modelPar_A1L_dX;
bool modelPar_given_A1L;
double modelPar_A1W;
double d_modelPar_A1W_dX;
bool modelPar_given_A1W;
double modelPar_A2O;
double d_modelPar_A2O_dX;
bool modelPar_given_A2O;
double modelPar_STA2O;
double d_modelPar_STA2O_dX;
bool modelPar_given_STA2O;
double modelPar_A3O;
double d_modelPar_A3O_dX;
bool modelPar_given_A3O;
double modelPar_A3L;
double d_modelPar_A3L_dX;
bool modelPar_given_A3L;
double modelPar_A3W;
double d_modelPar_A3W_dX;
bool modelPar_given_A3W;
double modelPar_A4O;
double d_modelPar_A4O_dX;
bool modelPar_given_A4O;
double modelPar_A4L;
double d_modelPar_A4L_dX;
bool modelPar_given_A4L;
double modelPar_A4W;
double d_modelPar_A4W_dX;
bool modelPar_given_A4W;
double modelPar_GCOO;
double d_modelPar_GCOO_dX;
bool modelPar_given_GCOO;
double modelPar_IGINVLW;
double d_modelPar_IGINVLW_dX;
bool modelPar_given_IGINVLW;
double modelPar_IGOVW;
double d_modelPar_IGOVW_dX;
bool modelPar_given_IGOVW;
double modelPar_IGOVDW;
double d_modelPar_IGOVDW_dX;
bool modelPar_given_IGOVDW;
double modelPar_STIGO;
double d_modelPar_STIGO_dX;
bool modelPar_given_STIGO;
double modelPar_GC2O;
double d_modelPar_GC2O_dX;
bool modelPar_given_GC2O;
double modelPar_GC3O;
double d_modelPar_GC3O_dX;
bool modelPar_given_GC3O;
double modelPar_CHIBO;
double d_modelPar_CHIBO_dX;
bool modelPar_given_CHIBO;
double modelPar_AGIDLW;
double d_modelPar_AGIDLW_dX;
bool modelPar_given_AGIDLW;
double modelPar_AGIDLDW;
double d_modelPar_AGIDLDW_dX;
bool modelPar_given_AGIDLDW;
double modelPar_BGIDLO;
double d_modelPar_BGIDLO_dX;
bool modelPar_given_BGIDLO;
double modelPar_BGIDLDO;
double d_modelPar_BGIDLDO_dX;
bool modelPar_given_BGIDLDO;
double modelPar_STBGIDLO;
double d_modelPar_STBGIDLO_dX;
bool modelPar_given_STBGIDLO;
double modelPar_STBGIDLDO;
double d_modelPar_STBGIDLDO_dX;
bool modelPar_given_STBGIDLDO;
double modelPar_CGIDLO;
double d_modelPar_CGIDLO_dX;
bool modelPar_given_CGIDLO;
double modelPar_CGIDLDO;
double d_modelPar_CGIDLDO_dX;
bool modelPar_given_CGIDLDO;
double modelPar_CGBOVL;
double d_modelPar_CGBOVL_dX;
bool modelPar_given_CGBOVL;
double modelPar_CFRW;
double d_modelPar_CFRW_dX;
bool modelPar_given_CFRW;
double modelPar_CFRDW;
double d_modelPar_CFRDW_dX;
bool modelPar_given_CFRDW;
double modelPar_FNTO;
double d_modelPar_FNTO_dX;
bool modelPar_given_FNTO;
double modelPar_FNTEXCL;
double d_modelPar_FNTEXCL_dX;
bool modelPar_given_FNTEXCL;
double modelPar_NFALW;
double d_modelPar_NFALW_dX;
bool modelPar_given_NFALW;
double modelPar_NFBLW;
double d_modelPar_NFBLW_dX;
bool modelPar_given_NFBLW;
double modelPar_NFCLW;
double d_modelPar_NFCLW_dX;
bool modelPar_given_NFCLW;
double modelPar_EFO;
double d_modelPar_EFO_dX;
bool modelPar_given_EFO;
double modelPar_LINTNOI;
double d_modelPar_LINTNOI_dX;
bool modelPar_given_LINTNOI;
double modelPar_ALPNOI;
double d_modelPar_ALPNOI_dX;
bool modelPar_given_ALPNOI;
double modelPar_WEDGE;
double d_modelPar_WEDGE_dX;
bool modelPar_given_WEDGE;
double modelPar_WEDGEW;
double d_modelPar_WEDGEW_dX;
bool modelPar_given_WEDGEW;
double modelPar_VFBEDGEO;
double d_modelPar_VFBEDGEO_dX;
bool modelPar_given_VFBEDGEO;
double modelPar_STVFBEDGEO;
double d_modelPar_STVFBEDGEO_dX;
bool modelPar_given_STVFBEDGEO;
double modelPar_STVFBEDGEL;
double d_modelPar_STVFBEDGEL_dX;
bool modelPar_given_STVFBEDGEL;
double modelPar_STVFBEDGEW;
double d_modelPar_STVFBEDGEW_dX;
bool modelPar_given_STVFBEDGEW;
double modelPar_STVFBEDGELW;
double d_modelPar_STVFBEDGELW_dX;
bool modelPar_given_STVFBEDGELW;
double modelPar_DPHIBEDGEO;
double d_modelPar_DPHIBEDGEO_dX;
bool modelPar_given_DPHIBEDGEO;
double modelPar_DPHIBEDGEL;
double d_modelPar_DPHIBEDGEL_dX;
bool modelPar_given_DPHIBEDGEL;
double modelPar_DPHIBEDGELEXP;
double d_modelPar_DPHIBEDGELEXP_dX;
bool modelPar_given_DPHIBEDGELEXP;
double modelPar_DPHIBEDGEW;
double d_modelPar_DPHIBEDGEW_dX;
bool modelPar_given_DPHIBEDGEW;
double modelPar_DPHIBEDGELW;
double d_modelPar_DPHIBEDGELW_dX;
bool modelPar_given_DPHIBEDGELW;
double modelPar_NSUBEDGEO;
double d_modelPar_NSUBEDGEO_dX;
bool modelPar_given_NSUBEDGEO;
double modelPar_NSUBEDGEL;
double d_modelPar_NSUBEDGEL_dX;
bool modelPar_given_NSUBEDGEL;
double modelPar_NSUBEDGEW;
double d_modelPar_NSUBEDGEW_dX;
bool modelPar_given_NSUBEDGEW;
double modelPar_NSUBEDGELW;
double d_modelPar_NSUBEDGELW_dX;
bool modelPar_given_NSUBEDGELW;
double modelPar_CTEDGEO;
double d_modelPar_CTEDGEO_dX;
bool modelPar_given_CTEDGEO;
double modelPar_CTEDGEL;
double d_modelPar_CTEDGEL_dX;
bool modelPar_given_CTEDGEL;
double modelPar_CTEDGELEXP;
double d_modelPar_CTEDGELEXP_dX;
bool modelPar_given_CTEDGELEXP;
double modelPar_FBETEDGE;
double d_modelPar_FBETEDGE_dX;
bool modelPar_given_FBETEDGE;
double modelPar_LPEDGE;
double d_modelPar_LPEDGE_dX;
bool modelPar_given_LPEDGE;
double modelPar_BETEDGEW;
double d_modelPar_BETEDGEW_dX;
bool modelPar_given_BETEDGEW;
double modelPar_STBETEDGEO;
double d_modelPar_STBETEDGEO_dX;
bool modelPar_given_STBETEDGEO;
double modelPar_STBETEDGEL;
double d_modelPar_STBETEDGEL_dX;
bool modelPar_given_STBETEDGEL;
double modelPar_STBETEDGEW;
double d_modelPar_STBETEDGEW_dX;
bool modelPar_given_STBETEDGEW;
double modelPar_STBETEDGELW;
double d_modelPar_STBETEDGELW_dX;
bool modelPar_given_STBETEDGELW;
double modelPar_PSCEEDGEL;
double d_modelPar_PSCEEDGEL_dX;
bool modelPar_given_PSCEEDGEL;
double modelPar_PSCEEDGELEXP;
double d_modelPar_PSCEEDGELEXP_dX;
bool modelPar_given_PSCEEDGELEXP;
double modelPar_PSCEEDGEW;
double d_modelPar_PSCEEDGEW_dX;
bool modelPar_given_PSCEEDGEW;
double modelPar_PSCEBEDGEO;
double d_modelPar_PSCEBEDGEO_dX;
bool modelPar_given_PSCEBEDGEO;
double modelPar_PSCEDEDGEO;
double d_modelPar_PSCEDEDGEO_dX;
bool modelPar_given_PSCEDEDGEO;
double modelPar_CFEDGEL;
double d_modelPar_CFEDGEL_dX;
bool modelPar_given_CFEDGEL;
double modelPar_CFEDGELEXP;
double d_modelPar_CFEDGELEXP_dX;
bool modelPar_given_CFEDGELEXP;
double modelPar_CFEDGEW;
double d_modelPar_CFEDGEW_dX;
bool modelPar_given_CFEDGEW;
double modelPar_CFDEDGEO;
double d_modelPar_CFDEDGEO_dX;
bool modelPar_given_CFDEDGEO;
double modelPar_CFBEDGEO;
double d_modelPar_CFBEDGEO_dX;
bool modelPar_given_CFBEDGEO;
double modelPar_FNTEDGEO;
double d_modelPar_FNTEDGEO_dX;
bool modelPar_given_FNTEDGEO;
double modelPar_NFAEDGELW;
double d_modelPar_NFAEDGELW_dX;
bool modelPar_given_NFAEDGELW;
double modelPar_NFBEDGELW;
double d_modelPar_NFBEDGELW_dX;
bool modelPar_given_NFBEDGELW;
double modelPar_NFCEDGELW;
double d_modelPar_NFCEDGELW_dX;
bool modelPar_given_NFCEDGELW;
double modelPar_EFEDGEO;
double d_modelPar_EFEDGEO_dX;
bool modelPar_given_EFEDGEO;
double modelPar_KVTHOWEO;
double d_modelPar_KVTHOWEO_dX;
bool modelPar_given_KVTHOWEO;
double modelPar_KVTHOWEL;
double d_modelPar_KVTHOWEL_dX;
bool modelPar_given_KVTHOWEL;
double modelPar_KVTHOWEW;
double d_modelPar_KVTHOWEW_dX;
bool modelPar_given_KVTHOWEW;
double modelPar_KVTHOWELW;
double d_modelPar_KVTHOWELW_dX;
bool modelPar_given_KVTHOWELW;
double modelPar_KUOWEO;
double d_modelPar_KUOWEO_dX;
bool modelPar_given_KUOWEO;
double modelPar_KUOWEL;
double d_modelPar_KUOWEL_dX;
bool modelPar_given_KUOWEL;
double modelPar_KUOWEW;
double d_modelPar_KUOWEW_dX;
bool modelPar_given_KUOWEW;
double modelPar_KUOWELW;
double d_modelPar_KUOWELW_dX;
bool modelPar_given_KUOWELW;
double modelPar_RGO;
double d_modelPar_RGO_dX;
bool modelPar_given_RGO;
double modelPar_RINT;
double d_modelPar_RINT_dX;
bool modelPar_given_RINT;
double modelPar_RVPOLY;
double d_modelPar_RVPOLY_dX;
bool modelPar_given_RVPOLY;
double modelPar_RSHG;
double d_modelPar_RSHG_dX;
bool modelPar_given_RSHG;
double modelPar_DLSIL;
double d_modelPar_DLSIL_dX;
bool modelPar_given_DLSIL;
double modelPar_RSH;
double d_modelPar_RSH_dX;
bool modelPar_given_RSH;
double modelPar_RSHD;
double d_modelPar_RSHD_dX;
bool modelPar_given_RSHD;
double modelPar_RBULKO;
double d_modelPar_RBULKO_dX;
bool modelPar_given_RBULKO;
double modelPar_RWELLO;
double d_modelPar_RWELLO_dX;
bool modelPar_given_RWELLO;
double modelPar_RJUNSO;
double d_modelPar_RJUNSO_dX;
bool modelPar_given_RJUNSO;
double modelPar_RJUNDO;
double d_modelPar_RJUNDO_dX;
bool modelPar_given_RJUNDO;
double modelPar_RTHO;
double d_modelPar_RTHO_dX;
bool modelPar_given_RTHO;
double modelPar_RTHW1;
double d_modelPar_RTHW1_dX;
bool modelPar_given_RTHW1;
double modelPar_RTHW2;
double d_modelPar_RTHW2_dX;
bool modelPar_given_RTHW2;
double modelPar_RTHLW;
double d_modelPar_RTHLW_dX;
bool modelPar_given_RTHLW;
double modelPar_CTHO;
double d_modelPar_CTHO_dX;
bool modelPar_given_CTHO;
double modelPar_CTHW1;
double d_modelPar_CTHW1_dX;
bool modelPar_given_CTHW1;
double modelPar_CTHW2;
double d_modelPar_CTHW2_dX;
bool modelPar_given_CTHW2;
double modelPar_CTHLW;
double d_modelPar_CTHLW_dX;
bool modelPar_given_CTHLW;
double modelPar_STRTHO;
double d_modelPar_STRTHO_dX;
bool modelPar_given_STRTHO;
double modelPar_SAREF;
double d_modelPar_SAREF_dX;
bool modelPar_given_SAREF;
double modelPar_SBREF;
double d_modelPar_SBREF_dX;
bool modelPar_given_SBREF;
double modelPar_WLOD;
double d_modelPar_WLOD_dX;
bool modelPar_given_WLOD;
double modelPar_KUO;
double d_modelPar_KUO_dX;
bool modelPar_given_KUO;
double modelPar_KVSAT;
double d_modelPar_KVSAT_dX;
bool modelPar_given_KVSAT;
double modelPar_TKUO;
double d_modelPar_TKUO_dX;
bool modelPar_given_TKUO;
double modelPar_LKUO;
double d_modelPar_LKUO_dX;
bool modelPar_given_LKUO;
double modelPar_WKUO;
double d_modelPar_WKUO_dX;
bool modelPar_given_WKUO;
double modelPar_PKUO;
double d_modelPar_PKUO_dX;
bool modelPar_given_PKUO;
double modelPar_LLODKUO;
double d_modelPar_LLODKUO_dX;
bool modelPar_given_LLODKUO;
double modelPar_WLODKUO;
double d_modelPar_WLODKUO_dX;
bool modelPar_given_WLODKUO;
double modelPar_KVTHO;
double d_modelPar_KVTHO_dX;
bool modelPar_given_KVTHO;
double modelPar_LKVTHO;
double d_modelPar_LKVTHO_dX;
bool modelPar_given_LKVTHO;
double modelPar_WKVTHO;
double d_modelPar_WKVTHO_dX;
bool modelPar_given_WKVTHO;
double modelPar_PKVTHO;
double d_modelPar_PKVTHO_dX;
bool modelPar_given_PKVTHO;
double modelPar_LLODVTH;
double d_modelPar_LLODVTH_dX;
bool modelPar_given_LLODVTH;
double modelPar_WLODVTH;
double d_modelPar_WLODVTH_dX;
bool modelPar_given_WLODVTH;
double modelPar_STETAO;
double d_modelPar_STETAO_dX;
bool modelPar_given_STETAO;
double modelPar_LODETAO;
double d_modelPar_LODETAO_dX;
bool modelPar_given_LODETAO;
double modelPar_SCREF;
double d_modelPar_SCREF_dX;
bool modelPar_given_SCREF;
double modelPar_WEB;
double d_modelPar_WEB_dX;
bool modelPar_given_WEB;
double modelPar_WEC;
double d_modelPar_WEC_dX;
bool modelPar_given_WEC;
double modelPar_IMAX;
double d_modelPar_IMAX_dX;
bool modelPar_given_IMAX;
double modelPar_TRJ;
double d_modelPar_TRJ_dX;
bool modelPar_given_TRJ;
double modelPar_FREV;
double d_modelPar_FREV_dX;
bool modelPar_given_FREV;
double modelPar_CJORBOT;
double d_modelPar_CJORBOT_dX;
bool modelPar_given_CJORBOT;
double modelPar_CJORSTI;
double d_modelPar_CJORSTI_dX;
bool modelPar_given_CJORSTI;
double modelPar_CJORGAT;
double d_modelPar_CJORGAT_dX;
bool modelPar_given_CJORGAT;
double modelPar_VBIRBOT;
double d_modelPar_VBIRBOT_dX;
bool modelPar_given_VBIRBOT;
double modelPar_VBIRSTI;
double d_modelPar_VBIRSTI_dX;
bool modelPar_given_VBIRSTI;
double modelPar_VBIRGAT;
double d_modelPar_VBIRGAT_dX;
bool modelPar_given_VBIRGAT;
double modelPar_PBOT;
double d_modelPar_PBOT_dX;
bool modelPar_given_PBOT;
double modelPar_PSTI;
double d_modelPar_PSTI_dX;
bool modelPar_given_PSTI;
double modelPar_PGAT;
double d_modelPar_PGAT_dX;
bool modelPar_given_PGAT;
double modelPar_PHIGBOT;
double d_modelPar_PHIGBOT_dX;
bool modelPar_given_PHIGBOT;
double modelPar_PHIGSTI;
double d_modelPar_PHIGSTI_dX;
bool modelPar_given_PHIGSTI;
double modelPar_PHIGGAT;
double d_modelPar_PHIGGAT_dX;
bool modelPar_given_PHIGGAT;
double modelPar_IDSATRBOT;
double d_modelPar_IDSATRBOT_dX;
bool modelPar_given_IDSATRBOT;
double modelPar_IDSATRSTI;
double d_modelPar_IDSATRSTI_dX;
bool modelPar_given_IDSATRSTI;
double modelPar_IDSATRGAT;
double d_modelPar_IDSATRGAT_dX;
bool modelPar_given_IDSATRGAT;
double modelPar_CSRHBOT;
double d_modelPar_CSRHBOT_dX;
bool modelPar_given_CSRHBOT;
double modelPar_CSRHSTI;
double d_modelPar_CSRHSTI_dX;
bool modelPar_given_CSRHSTI;
double modelPar_CSRHGAT;
double d_modelPar_CSRHGAT_dX;
bool modelPar_given_CSRHGAT;
double modelPar_XJUNSTI;
double d_modelPar_XJUNSTI_dX;
bool modelPar_given_XJUNSTI;
double modelPar_XJUNGAT;
double d_modelPar_XJUNGAT_dX;
bool modelPar_given_XJUNGAT;
double modelPar_CTATBOT;
double d_modelPar_CTATBOT_dX;
bool modelPar_given_CTATBOT;
double modelPar_CTATSTI;
double d_modelPar_CTATSTI_dX;
bool modelPar_given_CTATSTI;
double modelPar_CTATGAT;
double d_modelPar_CTATGAT_dX;
bool modelPar_given_CTATGAT;
double modelPar_MEFFTATBOT;
double d_modelPar_MEFFTATBOT_dX;
bool modelPar_given_MEFFTATBOT;
double modelPar_MEFFTATSTI;
double d_modelPar_MEFFTATSTI_dX;
bool modelPar_given_MEFFTATSTI;
double modelPar_MEFFTATGAT;
double d_modelPar_MEFFTATGAT_dX;
bool modelPar_given_MEFFTATGAT;
double modelPar_CBBTBOT;
double d_modelPar_CBBTBOT_dX;
bool modelPar_given_CBBTBOT;
double modelPar_CBBTSTI;
double d_modelPar_CBBTSTI_dX;
bool modelPar_given_CBBTSTI;
double modelPar_CBBTGAT;
double d_modelPar_CBBTGAT_dX;
bool modelPar_given_CBBTGAT;
double modelPar_FBBTRBOT;
double d_modelPar_FBBTRBOT_dX;
bool modelPar_given_FBBTRBOT;
double modelPar_FBBTRSTI;
double d_modelPar_FBBTRSTI_dX;
bool modelPar_given_FBBTRSTI;
double modelPar_FBBTRGAT;
double d_modelPar_FBBTRGAT_dX;
bool modelPar_given_FBBTRGAT;
double modelPar_STFBBTBOT;
double d_modelPar_STFBBTBOT_dX;
bool modelPar_given_STFBBTBOT;
double modelPar_STFBBTSTI;
double d_modelPar_STFBBTSTI_dX;
bool modelPar_given_STFBBTSTI;
double modelPar_STFBBTGAT;
double d_modelPar_STFBBTGAT_dX;
bool modelPar_given_STFBBTGAT;
double modelPar_VBRBOT;
double d_modelPar_VBRBOT_dX;
bool modelPar_given_VBRBOT;
double modelPar_VBRSTI;
double d_modelPar_VBRSTI_dX;
bool modelPar_given_VBRSTI;
double modelPar_VBRGAT;
double d_modelPar_VBRGAT_dX;
bool modelPar_given_VBRGAT;
double modelPar_PBRBOT;
double d_modelPar_PBRBOT_dX;
bool modelPar_given_PBRBOT;
double modelPar_PBRSTI;
double d_modelPar_PBRSTI_dX;
bool modelPar_given_PBRSTI;
double modelPar_PBRGAT;
double d_modelPar_PBRGAT_dX;
bool modelPar_given_PBRGAT;
double modelPar_CJORBOTD;
double d_modelPar_CJORBOTD_dX;
bool modelPar_given_CJORBOTD;
double modelPar_CJORSTID;
double d_modelPar_CJORSTID_dX;
bool modelPar_given_CJORSTID;
double modelPar_CJORGATD;
double d_modelPar_CJORGATD_dX;
bool modelPar_given_CJORGATD;
double modelPar_VBIRBOTD;
double d_modelPar_VBIRBOTD_dX;
bool modelPar_given_VBIRBOTD;
double modelPar_VBIRSTID;
double d_modelPar_VBIRSTID_dX;
bool modelPar_given_VBIRSTID;
double modelPar_VBIRGATD;
double d_modelPar_VBIRGATD_dX;
bool modelPar_given_VBIRGATD;
double modelPar_PBOTD;
double d_modelPar_PBOTD_dX;
bool modelPar_given_PBOTD;
double modelPar_PSTID;
double d_modelPar_PSTID_dX;
bool modelPar_given_PSTID;
double modelPar_PGATD;
double d_modelPar_PGATD_dX;
bool modelPar_given_PGATD;
double modelPar_PHIGBOTD;
double d_modelPar_PHIGBOTD_dX;
bool modelPar_given_PHIGBOTD;
double modelPar_PHIGSTID;
double d_modelPar_PHIGSTID_dX;
bool modelPar_given_PHIGSTID;
double modelPar_PHIGGATD;
double d_modelPar_PHIGGATD_dX;
bool modelPar_given_PHIGGATD;
double modelPar_IDSATRBOTD;
double d_modelPar_IDSATRBOTD_dX;
bool modelPar_given_IDSATRBOTD;
double modelPar_IDSATRSTID;
double d_modelPar_IDSATRSTID_dX;
bool modelPar_given_IDSATRSTID;
double modelPar_IDSATRGATD;
double d_modelPar_IDSATRGATD_dX;
bool modelPar_given_IDSATRGATD;
double modelPar_CSRHBOTD;
double d_modelPar_CSRHBOTD_dX;
bool modelPar_given_CSRHBOTD;
double modelPar_CSRHSTID;
double d_modelPar_CSRHSTID_dX;
bool modelPar_given_CSRHSTID;
double modelPar_CSRHGATD;
double d_modelPar_CSRHGATD_dX;
bool modelPar_given_CSRHGATD;
double modelPar_XJUNSTID;
double d_modelPar_XJUNSTID_dX;
bool modelPar_given_XJUNSTID;
double modelPar_XJUNGATD;
double d_modelPar_XJUNGATD_dX;
bool modelPar_given_XJUNGATD;
double modelPar_CTATBOTD;
double d_modelPar_CTATBOTD_dX;
bool modelPar_given_CTATBOTD;
double modelPar_CTATSTID;
double d_modelPar_CTATSTID_dX;
bool modelPar_given_CTATSTID;
double modelPar_CTATGATD;
double d_modelPar_CTATGATD_dX;
bool modelPar_given_CTATGATD;
double modelPar_MEFFTATBOTD;
double d_modelPar_MEFFTATBOTD_dX;
bool modelPar_given_MEFFTATBOTD;
double modelPar_MEFFTATSTID;
double d_modelPar_MEFFTATSTID_dX;
bool modelPar_given_MEFFTATSTID;
double modelPar_MEFFTATGATD;
double d_modelPar_MEFFTATGATD_dX;
bool modelPar_given_MEFFTATGATD;
double modelPar_CBBTBOTD;
double d_modelPar_CBBTBOTD_dX;
bool modelPar_given_CBBTBOTD;
double modelPar_CBBTSTID;
double d_modelPar_CBBTSTID_dX;
bool modelPar_given_CBBTSTID;
double modelPar_CBBTGATD;
double d_modelPar_CBBTGATD_dX;
bool modelPar_given_CBBTGATD;
double modelPar_FBBTRBOTD;
double d_modelPar_FBBTRBOTD_dX;
bool modelPar_given_FBBTRBOTD;
double modelPar_FBBTRSTID;
double d_modelPar_FBBTRSTID_dX;
bool modelPar_given_FBBTRSTID;
double modelPar_FBBTRGATD;
double d_modelPar_FBBTRGATD_dX;
bool modelPar_given_FBBTRGATD;
double modelPar_STFBBTBOTD;
double d_modelPar_STFBBTBOTD_dX;
bool modelPar_given_STFBBTBOTD;
double modelPar_STFBBTSTID;
double d_modelPar_STFBBTSTID_dX;
bool modelPar_given_STFBBTSTID;
double modelPar_STFBBTGATD;
double d_modelPar_STFBBTGATD_dX;
bool modelPar_given_STFBBTGATD;
double modelPar_VBRBOTD;
double d_modelPar_VBRBOTD_dX;
bool modelPar_given_VBRBOTD;
double modelPar_VBRSTID;
double d_modelPar_VBRSTID_dX;
bool modelPar_given_VBRSTID;
double modelPar_VBRGATD;
double d_modelPar_VBRGATD_dX;
bool modelPar_given_VBRGATD;
double modelPar_PBRBOTD;
double d_modelPar_PBRBOTD_dX;
bool modelPar_given_PBRBOTD;
double modelPar_PBRSTID;
double d_modelPar_PBRSTID_dX;
bool modelPar_given_PBRSTID;
double modelPar_PBRGATD;
double d_modelPar_PBRGATD_dX;
bool modelPar_given_PBRGATD;
double modelPar_SWJUNEXP;
double d_modelPar_SWJUNEXP_dX;
bool modelPar_given_SWJUNEXP;
double modelPar_VJUNREF;
double d_modelPar_VJUNREF_dX;
bool modelPar_given_VJUNREF;
double modelPar_FJUNQ;
double d_modelPar_FJUNQ_dX;
bool modelPar_given_FJUNQ;
double modelPar_VJUNREFD;
double d_modelPar_VJUNREFD_dX;
bool modelPar_given_VJUNREFD;
double modelPar_FJUNQD;
double d_modelPar_FJUNQD_dX;
bool modelPar_given_FJUNQD;
double modelPar_DTA;
double d_modelPar_DTA_dX;
bool modelPar_given_DTA;
// non-reals (including hidden)
int modelPar_LEVEL;
bool modelPar_given_LEVEL;
int modelPar_TYPE;
bool modelPar_given_TYPE;
int modelPar_SWGEO;
bool modelPar_given_SWGEO;
int modelPar_SWIGATE;
bool modelPar_given_SWIGATE;
int modelPar_SWIMPACT;
bool modelPar_given_SWIMPACT;
int modelPar_SWGIDL;
bool modelPar_given_SWGIDL;
int modelPar_SWJUNCAP;
bool modelPar_given_SWJUNCAP;
int modelPar_SWJUNASYM;
bool modelPar_given_SWJUNASYM;
int modelPar_SWNUD;
bool modelPar_given_SWNUD;
int modelPar_SWEDGE;
bool modelPar_given_SWEDGE;
int modelPar_SWDELVTAC;
bool modelPar_given_SWDELVTAC;
int modelPar_SWIGN;
bool modelPar_given_SWIGN;
// model variables
// reals
double modelVar_TOXO_i;
double d_modelVar_TOXO_i_dX;double modelVar_EPSROXO_i;
double d_modelVar_EPSROXO_i_dX;double modelVar_NSUBO_i;
double d_modelVar_NSUBO_i_dX;double modelVar_WSEG_i;
double d_modelVar_WSEG_i_dX;double modelVar_NPCK_i;
double d_modelVar_NPCK_i_dX;double modelVar_WSEGP_i;
double d_modelVar_WSEGP_i_dX;double modelVar_LPCK_i;
double d_modelVar_LPCK_i_dX;double modelVar_TOXOVO_i;
double d_modelVar_TOXOVO_i_dX;double modelVar_TOXOVDO_i;
double d_modelVar_TOXOVDO_i_dX;double modelVar_LOV_i;
double d_modelVar_LOV_i_dX;double modelVar_LOVD_i;
double d_modelVar_LOVD_i_dX;double modelVar_LP1_i;
double d_modelVar_LP1_i_dX;double modelVar_LP2_i;
double d_modelVar_LP2_i_dX;double modelVar_WBET_i;
double d_modelVar_WBET_i_dX;double modelVar_AXL_i;
double d_modelVar_AXL_i_dX;double modelVar_ALP1L2_i;
double d_modelVar_ALP1L2_i_dX;double modelVar_ALP2L2_i;
double d_modelVar_ALP2L2_i_dX;double modelVar_SAREF_i;
double d_modelVar_SAREF_i_dX;double modelVar_SBREF_i;
double d_modelVar_SBREF_i_dX;double modelVar_KVSAT_i;
double d_modelVar_KVSAT_i_dX;double modelVar_LLODKUO_i;
double d_modelVar_LLODKUO_i_dX;double modelVar_WLODKUO_i;
double d_modelVar_WLODKUO_i_dX;double modelVar_LLODVTH_i;
double d_modelVar_LLODVTH_i_dX;double modelVar_WLODVTH_i;
double d_modelVar_WLODVTH_i_dX;double modelVar_LODETAO_i;
double d_modelVar_LODETAO_i_dX;double modelVar_SCREF_i;
double d_modelVar_SCREF_i_dX;double modelVar_WEB_i;
double d_modelVar_WEB_i_dX;double modelVar_WEC_i;
double d_modelVar_WEC_i_dX;double modelVar_RSHG_i;
double d_modelVar_RSHG_i_dX;double modelVar_RSH_i;
double d_modelVar_RSH_i_dX;double modelVar_RSHD_i;
double d_modelVar_RSHD_i_dX;double modelVar_RINT_i;
double d_modelVar_RINT_i_dX;double modelVar_RVPOLY_i;
double d_modelVar_RVPOLY_i_dX;double modelVar_NSUBEDGEO_i;
double d_modelVar_NSUBEDGEO_i_dX;double modelVar_LPEDGE_i;
double d_modelVar_LPEDGE_i_dX;double modelVar_QMC_i;
double d_modelVar_QMC_i_dX;double modelVar_EPSSI;
// non-reals
int modelVar_CHNL_TYPE;int modelVar_SWGEO_i;int modelVar_SWIGATE_i;int modelVar_SWIMPACT_i;int modelVar_SWGIDL_i;int modelVar_SWJUNCAP_i;int modelVar_SWJUNASYM_i;int modelVar_SWNUD_i;int modelVar_SWEDGE_i;int modelVar_SWDELVTAC_i;int modelVar_SWIGN_i;};



//-----------------------------------------------------------------------------
// Free functions used by sensitivity
//
//-----------------------------------------------------------------------------
void evaluateModelEquations(
std::vector <double> & probeVars,
// probe constants
const int admsProbeID_V_DI_GND,
const int admsProbeID_V_BS_GND,
const int admsProbeID_V_BD_GND,
const int admsProbeID_V_SI_GND,
const int admsProbeID_V_BP_GND,
const int admsProbeID_V_GP_GND,
const int admsProbeID_V_NOI_GND,
const int admsProbeID_V_NOI2_GND,
const int admsProbeID_V_B_BI,
const int admsProbeID_V_BD_BI,
const int admsProbeID_V_BS_BI,
const int admsProbeID_V_BP_BI,
const int admsProbeID_V_D_DI,
const int admsProbeID_V_S_SI,
const int admsProbeID_V_G_GP,
const int admsProbeID_V_DI_BD,
const int admsProbeID_V_SI_BS,
const int admsProbeID_V_SI_BP,
const int admsProbeID_V_DI_SI,
const int admsProbeID_V_GP_SI,
const int admsProbeID_Temp_DT_GND,
// node constants
const int admsNodeID_D,
const int admsNodeID_G,
const int admsNodeID_S,
const int admsNodeID_B,
const int admsNodeID_DT,
const int admsNodeID_NOI,
const int admsNodeID_NOI2,
const int admsNodeID_GP,
const int admsNodeID_SI,
const int admsNodeID_DI,
const int admsNodeID_BP,
const int admsNodeID_BI,
const int admsNodeID_BS,
const int admsNodeID_BD,
instanceSensStruct & instanceStruct,
modelSensStruct & modelStruct,
// basic variables
 double admsTemperature, double adms_vt_nom, double ADMSgmin_arg, std::vector <double> & d_staticContributions_dX, std::vector <double> & d_dynamicContributions_dX, const Instance & theInstance);

void evaluateInitialInstance(
instanceSensStruct & instanceStruct,
modelSensStruct & modelStruct,
 double admsTemperature,double adms_vt_nom, double ADMSgmin_arg, const Instance & theInstance);

void evaluateInitialModel(
modelSensStruct & modelStruct,
 double admsTemperature, double ADMSgmin_arg, const Instance & theInstance);

#endif // Xyce_ADMS_SENSITIVITIES


// Limited exponential --- NOT what verilog LRM says, but what qucs,
// ng-spice, and zspice do.

template <typename T>
T limexp(const T &x)
{
  if ((x) < 80.0)
  return (exp(x));
  else
  return (exp(80.0)*(x-79.0));
}


struct Traits: public DeviceTraits<Model, Instance, MOSFET1::Traits>
{
  static const char *name() {return "PSP103VA MOSFET with self-heating";}
  static const char *deviceTypeName() {return "M level 1031";}

  static int numNodes() {return 5;}


  static bool modelRequired() {return true;}
  static bool isLinearDevice() {return false;}

  static Device *factory(const Configuration &configuration, const FactoryBlock &factory_block);
  static void loadModelParameters(ParametricData<Model> &model_parameters);
  static void loadInstanceParameters(ParametricData<Instance> &instance_parameters);
};

//-----------------------------------------------------------------------------
// Class         : Instance

//
// Purpose       : This class represents a single instance  of the
//                 device.  It mainly contains indices and pointers into
//                 the matrix equation (see the resistor instance class for
//                 more details).
//
// Special Notes :
// Creator       :
// Creation Date :
//-----------------------------------------------------------------------------
class Instance : public DeviceInstance
{
  friend class ParametricData<Instance>;
  friend class Model;
#ifdef Xyce_ADMS_SENSITIVITIES
  friend class InstanceSensitivity;
  friend class ModelSensitivity;
#endif // Xyce_ADMS_SENSITIVITIES
  friend struct Traits;

  public:
    Instance(
      const Configuration &       configuration,
      const InstanceBlock &       instance_block,
      Model &                     model,
      const FactoryBlock &        factory_block);

    ~Instance();

private:
    Instance(const Instance &);
    Instance &operator=(const Instance &);

public:
    void registerLIDs( const LocalIdVector & intLIDVecRef,
                       const LocalIdVector & extLIDVecRef );
    void registerStoreLIDs( const LocalIdVector & stoLIDVecRef );
    void setupPointers();

    void loadNodeSymbols(Util::SymbolTable &symbol_table) const;

    const JacobianStamp & jacobianStamp() const;
    void registerJacLIDs( const JacobianStamp & jacLIDVec );

    void registerBranchDataLIDs(const std::vector<int> & branchLIDVecRef);

    bool processParams();
    bool updateTemperature ( const double & temp = -999.0 );
    bool updateIntermediateVars ();
    bool updatePrimaryState ();
    bool updateSecondaryState ();

    // load functions, residual:
    bool loadDAEQVector ();
    bool loadDAEFVector ();

    // load functions, Jacobian:
    bool loadDAEdQdx ();
    bool loadDAEdFdx ();

      void collapseNodes();
      int getNumNoiseSources () const;  // 16
      void setupNoiseSources (Xyce::Analysis::NoiseData & noiseData);
      void getNoiseSources (Xyce::Analysis::NoiseData & noiseData);

  private:

  public:
    // iterator reference to the PSP103TVA model which owns this instance.
    // Getters and setters
    Model &getModel()
    {
      return model_;
    }

  private:

    Model & model_;   //< Owning Model
    // Begin verilog Instance Variables
    //   Instance Parameters
    double L;
    double W;
    double SA;
    double SB;
    double SD;
    double SCA;
    double SCB;
    double SCC;
    double SC;
    double NF;
    double NGCON;
    double XGW;
    double NRS;
    double NRD;
    double JW;
    double DELVTO;
    double FACTUO;
    double DELVTOEDGE;
    double FACTUOEDGE;
    double ABSOURCE;
    double LSSOURCE;
    double LGSOURCE;
    double ABDRAIN;
    double LSDRAIN;
    double LGDRAIN;
    double AS;
    double PS;
    double AD;
    double PD;
    double MULT;
    double DTA;
    //  Variables of global_instance scope
    double MULT_i;
    double FACTUO_i;
    double DELVTO_i;
    double FACTUOEDGE_i;
    double DELVTOEDGE_i;
    double RTH_p;
    double VFB_i;
    double STVFB_i;
    double TOX_i;
    double EPSROX_i;
    double NEFF_i;
    double FACNEFFAC_i;
    double GFACNUD_i;
    double VSBNUD_i;
    double DVSBNUD_i;
    double VNSUB_i;
    double NSLP_i;
    double DNSUB_i;
    double DPHIB_i;
    double DELVTAC_i;
    double NP_i;
    double CT_i;
    double TOXOV_i;
    double TOXOVD_i;
    double NOV_i;
    double NOVD_i;
    double CF_i;
    double CFD_i;
    double CFB_i;
    double PSCE_i;
    double PSCEB_i;
    double PSCED_i;
    double BETN_i;
    double STBET_i;
    double MUE_i;
    double STMUE_i;
    double THEMU_i;
    double STTHEMU_i;
    double CS_i;
    double STCS_i;
    double XCOR_i;
    double STXCOR_i;
    double FETA_i;
    double RS_i;
    double STRS_i;
    double RSB_i;
    double RSG_i;
    double THESAT_i;
    double STTHESAT_i;
    double THESATB_i;
    double THESATG_i;
    double AX_i;
    double ALP_i;
    double ALP1_i;
    double ALP2_i;
    double VP_i;
    double A1_i;
    double A2_i;
    double STA2_i;
    double A3_i;
    double A4_i;
    double GCO_i;
    double IGINV_i;
    double IGOV_i;
    double IGOVD_i;
    double STIG_i;
    double GC2_i;
    double GC3_i;
    double CHIB_i;
    double AGIDL_i;
    double AGIDLD_i;
    double STBGIDL_i;
    double STBGIDLD_i;
    double CGIDL_i;
    double CGIDLD_i;
    double COX_i;
    double CGOV_i;
    double CGOVD_i;
    double CGBOV_i;
    double CFR_i;
    double CFRD_i;
    double FNT_i;
    double FNTEXC_i;
    double NFA_i;
    double NFB_i;
    double NFC_i;
    double EF_i;
    double VFBEDGE_i;
    double STVFBEDGE_i;
    double DPHIBEDGE_i;
    double NEFFEDGE_i;
    double CTEDGE_i;
    double BETNEDGE_i;
    double STBETEDGE_i;
    double PSCEEDGE_i;
    double PSCEBEDGE_i;
    double PSCEDEDGE_i;
    double CFEDGE_i;
    double CFDEDGE_i;
    double CFBEDGE_i;
    double FNTEDGE_i;
    double NFAEDGE_i;
    double NFBEDGE_i;
    double NFCEDGE_i;
    double EFEDGE_i;
    double RG_i;
    double RSE_i;
    double RDE_i;
    double RBULK_i;
    double RJUNS_i;
    double RJUND_i;
    double RWELL_i;
    double RTH_i;
    double CTH_i;
    double STRTH_i;
    double LE;
    double WE;
    double TKR;
    double TKA;
    double phita;
    double inv_phita;
    double VBIRBOT_i;
    double VBIRSTI_i;
    double VBIRGAT_i;
    double PBOT_i;
    double PSTI_i;
    double PGAT_i;
    double CSRHBOT_i;
    double CSRHSTI_i;
    double CSRHGAT_i;
    double CTATBOT_i;
    double CTATSTI_i;
    double CTATGAT_i;
    double CBBTBOT_i;
    double CBBTSTI_i;
    double CBBTGAT_i;
    double VBRBOT_i;
    double VBRSTI_i;
    double VBRGAT_i;
    double PBRBOT_i;
    double PBRSTI_i;
    double PBRGAT_i;
    double SWJUNEXP_i;
    double phitr;
    double phitd;
    double phitdinv;
    double perfc;
    double berfc;
    double cerfc;
    double ftdbot;
    double ftdsti;
    double ftdgat;
    double idsatbot;
    double idsatsti;
    double idsatgat;
    double vbibot;
    double vbisti;
    double vbigat;
    double vbiinvbot;
    double vbiinvsti;
    double vbiinvgat;
    double one_minus_PBOT;
    double one_minus_PSTI;
    double one_minus_PGAT;
    double one_over_one_minus_PBOT;
    double one_over_one_minus_PSTI;
    double one_over_one_minus_PGAT;
    double cjobot;
    double cjosti;
    double cjogat;
    double qprefbot;
    double qprefsti;
    double qprefgat;
    double qpref2bot;
    double qpref2sti;
    double qpref2gat;
    double wdepnulrbot;
    double wdepnulrsti;
    double wdepnulrgat;
    double wdepnulrinvbot;
    double wdepnulrinvsti;
    double wdepnulrinvgat;
    double VBIRBOTinv;
    double VBIRSTIinv;
    double VBIRGATinv;
    double atatbot;
    double atatsti;
    double atatgat;
    double btatpartbot;
    double btatpartsti;
    double btatpartgat;
    double fbbtbot;
    double fbbtsti;
    double fbbtgat;
    double alphaav;
    double fstopbot;
    double fstopsti;
    double fstopgat;
    double VBRinvbot;
    double VBRinvsti;
    double VBRinvgat;
    double slopebot;
    double slopesti;
    double slopegat;
    double VBIRBOTD_i;
    double VBIRSTID_i;
    double VBIRGATD_i;
    double PBOTD_i;
    double PSTID_i;
    double PGATD_i;
    double CSRHBOTD_i;
    double CSRHSTID_i;
    double CSRHGATD_i;
    double CTATBOTD_i;
    double CTATSTID_i;
    double CTATGATD_i;
    double CBBTBOTD_i;
    double CBBTSTID_i;
    double CBBTGATD_i;
    double VBRBOTD_i;
    double VBRSTID_i;
    double VBRGATD_i;
    double PBRBOTD_i;
    double PBRSTID_i;
    double PBRGATD_i;
    double ftdbot_d;
    double ftdsti_d;
    double ftdgat_d;
    double idsatbot_d;
    double idsatsti_d;
    double idsatgat_d;
    double vbibot_d;
    double vbisti_d;
    double vbigat_d;
    double vbiinvbot_d;
    double vbiinvsti_d;
    double vbiinvgat_d;
    double one_minus_PBOT_d;
    double one_minus_PSTI_d;
    double one_minus_PGAT_d;
    double one_over_one_minus_PBOT_d;
    double one_over_one_minus_PSTI_d;
    double one_over_one_minus_PGAT_d;
    double cjobot_d;
    double cjosti_d;
    double cjogat_d;
    double qprefbot_d;
    double qprefsti_d;
    double qprefgat_d;
    double qpref2bot_d;
    double qpref2sti_d;
    double qpref2gat_d;
    double wdepnulrbot_d;
    double wdepnulrsti_d;
    double wdepnulrgat_d;
    double wdepnulrinvbot_d;
    double wdepnulrinvsti_d;
    double wdepnulrinvgat_d;
    double VBIRBOTinv_d;
    double VBIRSTIinv_d;
    double VBIRGATinv_d;
    double atatbot_d;
    double atatsti_d;
    double atatgat_d;
    double btatpartbot_d;
    double btatpartsti_d;
    double btatpartgat_d;
    double fbbtbot_d;
    double fbbtsti_d;
    double fbbtgat_d;
    double fstopbot_d;
    double fstopsti_d;
    double fstopgat_d;
    double VBRinvbot_d;
    double VBRinvsti_d;
    double VBRinvgat_d;
    double slopebot_d;
    double slopesti_d;
    double slopegat_d;
    double ABSOURCE_i;
    double LSSOURCE_i;
    double LGSOURCE_i;
    double zflagbot_s;
    double zflagsti_s;
    double zflaggat_s;
    double VMAX_s;
    double exp_VMAX_over_phitd_s;
    double vbimin_s;
    double vch_s;
    double vfmin_s;
    double vbbtlim_s;
    double xhighf1_s;
    double expxhf1_s;
    double xhighf2_s;
    double expxhf2_s;
    double xhighr_s;
    double expxhr_s;
    double m0flag_s;
    double ISATFOR1_s;
    double MFOR1_s;
    double ISATFOR2_s;
    double MFOR2_s;
    double ISATREV_s;
    double MREV_s;
    double ABDRAIN_i;
    double LSDRAIN_i;
    double LGDRAIN_i;
    double zflagbot_d;
    double zflagsti_d;
    double zflaggat_d;
    double VMAX_d;
    double exp_VMAX_over_phitd_d;
    double vbimin_d;
    double vch_d;
    double vfmin_d;
    double vbbtlim_d;
    double xhighf1_d;
    double expxhf1_d;
    double xhighf2_d;
    double expxhf2_d;
    double xhighr_d;
    double expxhr_d;
    double m0flag_d;
    double ISATFOR1_d;
    double MFOR1_d;
    double ISATFOR2_d;
    double MFOR2_d;
    double ISATREV_d;
    double MREV_d;
    double BGIDL_T;
    double BGIDLD_T;
    double RTH_T;
    double CoxPrime;
    double tox_sq;
    double Cox_over_q;
    double NEFFAC_i;
    double qq;
    double E_eff0;
    double eta_mu;
    double eta_mu1;
    double inv_AX;
    double inv_VP;
    double GOV_s;
    double GOV_d;
    double GOV2_s;
    double GOV2_d;
    double SP_OV_eps2_s;
    double SP_OV_a_s;
    double SP_OV_delta1_s;
    double SP_OV_eps2_d;
    double SP_OV_a_d;
    double SP_OV_delta1_d;
    double inv_CHIB;
    double BCH;
    double BOV;
    double BOV_d;
    double GCQ;
    double AGIDLs;
    double AGIDLDs;
    double BGIDLs;
    double BGIDLDs;
    double fac_exc;
    double ggate;
    double gsource;
    double gdrain;
    double gbulk;
    double gjuns;
    double gjund;
    double gwell;
    double Sfl;
    double sqid;
    double mig;
     double d_mig_dTemp_DT_GND;
     double d_mig_dV_DI_SI;
     double d_mig_dV_SI_BP;
     double d_mig_dV_GP_SI;
    double CGeff;
     double d_CGeff_dV_DI_SI;
     double d_CGeff_dV_GP_SI;
     double d_CGeff_dV_SI_BP;
     double d_CGeff_dTemp_DT_GND;
    double c_igid;
    double shot_igcsx;
    double shot_igcdx;
    double shot_igsov;
    double shot_igdov;
    double shot_iavl;
    double jnoisex_s;
    double jnoisex_d;
    double ctype;
    double sdint;
    double ise;
    double ige;
    double ide;
    double ibe;
    double ids;
    double idb;
    double isb;
    double igs;
    double igd;
    double igb;
    double idedge;
    double igcs;
    double igcd;
    double iavl;
    double igisl;
    double igidl;
    double ijs;
    double ijsbot;
    double ijsgat;
    double ijssti;
    double ijd;
    double ijdbot;
    double ijdgat;
    double ijdsti;
    double vds;
    double vgs;
    double vsb;
    double vto;
    double vts;
    double vth;
    double vgt;
    double vdss;
    double vsat;
    double gm;
    double gmb;
    double gds;
    double gjs;
    double gjd;
    double cdd;
    double cdg;
    double cds;
    double cdb;
    double cgd;
    double cgg;
    double cgs;
    double cgb;
    double csd;
    double csg;
    double css;
    double csb;
    double cbd;
    double cbg;
    double cbs;
    double cbb;
    double cgsol;
    double cgdol;
    double cjs;
    double cjsbot;
    double cjsgat;
    double cjssti;
    double cjd;
    double cjdbot;
    double cjdgat;
    double cjdsti;
    double weff;
    double leff;
    double u;
    double rout;
    double vearly;
    double beff;
    double fug;
    double rg;
    double sfl;
    double sqrtsff;
    double sqrtsfw;
    double sid;
    double sig;
    double cigid;
    double fknee;
    double sigs;
    double sigd;
    double siavl;
    double ssi;
    double sdi;
    double sfledge;
    double sidedge;
    double lp_vfb;
    double lp_stvfb;
    double lp_tox;
    double lp_epsrox;
    double lp_neff;
    double lp_facneffac;
    double lp_gfacnud;
    double lp_vsbnud;
    double lp_dvsbnud;
    double lp_vnsub;
    double lp_nslp;
    double lp_dnsub;
    double lp_dphib;
    double lp_delvtac;
    double lp_np;
    double lp_ct;
    double lp_toxov;
    double lp_toxovd;
    double lp_nov;
    double lp_novd;
    double lp_cf;
    double lp_cfd;
    double lp_cfb;
    double lp_psce;
    double lp_psceb;
    double lp_psced;
    double lp_betn;
    double lp_stbet;
    double lp_mue;
    double lp_stmue;
    double lp_themu;
    double lp_stthemu;
    double lp_cs;
    double lp_stcs;
    double lp_xcor;
    double lp_stxcor;
    double lp_feta;
    double lp_rs;
    double lp_strs;
    double lp_rsb;
    double lp_rsg;
    double lp_thesat;
    double lp_stthesat;
    double lp_thesatb;
    double lp_thesatg;
    double lp_ax;
    double lp_alp;
    double lp_alp1;
    double lp_alp2;
    double lp_vp;
    double lp_a1;
    double lp_a2;
    double lp_sta2;
    double lp_a3;
    double lp_a4;
    double lp_gco;
    double lp_iginv;
    double lp_igov;
    double lp_igovd;
    double lp_stig;
    double lp_gc2;
    double lp_gc3;
    double lp_chib;
    double lp_agidl;
    double lp_agidld;
    double lp_bgidl;
    double lp_bgidld;
    double lp_stbgidl;
    double lp_stbgidld;
    double lp_cgidl;
    double lp_cgidld;
    double lp_cox;
    double lp_cgov;
    double lp_cgovd;
    double lp_cgbov;
    double lp_cfr;
    double lp_cfrd;
    double lp_fnt;
    double lp_fntexc;
    double lp_nfa;
    double lp_nfb;
    double lp_nfc;
    double lp_ef;
    double lp_vfbedge;
    double lp_stvfbedge;
    double lp_dphibedge;
    double lp_neffedge;
    double lp_ctedge;
    double lp_betnedge;
    double lp_stbetedge;
    double lp_psceedge;
    double lp_pscebedge;
    double lp_pscededge;
    double lp_cfedge;
    double lp_cfdedge;
    double lp_cfbedge;
    double lp_fntedge;
    double lp_nfaedge;
    double lp_nfbedge;
    double lp_nfcedge;
    double lp_efedge;
    double lp_rg;
    double lp_rse;
    double lp_rde;
    double lp_rbulk;
    double lp_rwell;
    double lp_rjuns;
    double lp_rjund;
    double lp_rth;
    double lp_cth;
    double lp_strth;
    double pdiss;
    double dtsh;
    double tk;
    double cjosbot;
    double cjossti;
    double cjosgat;
    double vbisbot;
    double vbissti;
    double vbisgat;
    double idsatsbot;
    double idsatssti;
    double idsatsgat;
    double cjosbotd;
    double cjosstid;
    double cjosgatd;
    double vbisbotd;
    double vbisstid;
    double vbisgatd;
    double idsatsbotd;
    double idsatsstid;
    double idsatsgatd;
    // end verilog Instance Variables=====
    // Nodal LID Variables
    int li_D;
    int li_G;
    int li_S;
    int li_B;
    int li_DT;
    int li_NOI;
    int li_NOI2;
    int li_GP;
    int li_SI;
    int li_DI;
    int li_BP;
    int li_BI;
    int li_BS;
    int li_BD;
    // end Nodal LID Variables
    // Branch LID Variables
    // end Branch LID Variables
    // Lead (branch) LID Variables
    int li_branch_iD;
    int li_branch_iG;
    int li_branch_iS;
    int li_branch_iB;
    int li_branch_iDT;
    // end Lead (branch) LID Variables
    // Jacobian  pointers
    double * f_DI_Equ_DT_Node_Ptr;
    double * f_BP_Equ_DT_Node_Ptr;
    double * f_DI_Equ_SI_Node_Ptr;
    double * f_DI_Equ_BP_Node_Ptr;
    double * f_BP_Equ_SI_Node_Ptr;
    double * f_BP_Equ_BP_Node_Ptr;
    double * f_DI_Equ_GP_Node_Ptr;
    double * f_BP_Equ_GP_Node_Ptr;
    double * f_DI_Equ_DI_Node_Ptr;
    double * f_BP_Equ_DI_Node_Ptr;
    double * f_SI_Equ_SI_Node_Ptr;
    double * f_SI_Equ_BP_Node_Ptr;
    double * f_SI_Equ_GP_Node_Ptr;
    double * f_SI_Equ_DI_Node_Ptr;
    double * f_SI_Equ_DT_Node_Ptr;
    double * f_GP_Equ_DT_Node_Ptr;
    double * f_GP_Equ_SI_Node_Ptr;
    double * f_GP_Equ_BP_Node_Ptr;
    double * f_GP_Equ_DI_Node_Ptr;
    double * f_GP_Equ_GP_Node_Ptr;
    double * f_BS_Equ_SI_Node_Ptr;
    double * f_BS_Equ_BS_Node_Ptr;
    double * f_SI_Equ_BS_Node_Ptr;
    double * f_BS_Equ_DI_Node_Ptr;
    double * f_BS_Equ_BD_Node_Ptr;
    double * f_SI_Equ_BD_Node_Ptr;
    double * f_BD_Equ_SI_Node_Ptr;
    double * f_BD_Equ_BS_Node_Ptr;
    double * f_DI_Equ_BS_Node_Ptr;
    double * f_BD_Equ_DI_Node_Ptr;
    double * f_BD_Equ_BD_Node_Ptr;
    double * f_DI_Equ_BD_Node_Ptr;
    double * f_G_Equ_G_Node_Ptr;
    double * f_G_Equ_GP_Node_Ptr;
    double * f_GP_Equ_G_Node_Ptr;
    double * f_G_Equ_DT_Node_Ptr;
    double * f_S_Equ_S_Node_Ptr;
    double * f_S_Equ_SI_Node_Ptr;
    double * f_SI_Equ_S_Node_Ptr;
    double * f_S_Equ_DT_Node_Ptr;
    double * f_D_Equ_D_Node_Ptr;
    double * f_D_Equ_DI_Node_Ptr;
    double * f_DI_Equ_D_Node_Ptr;
    double * f_D_Equ_DT_Node_Ptr;
    double * f_BP_Equ_BI_Node_Ptr;
    double * f_BI_Equ_BP_Node_Ptr;
    double * f_BI_Equ_BI_Node_Ptr;
    double * f_BI_Equ_DT_Node_Ptr;
    double * f_BS_Equ_BI_Node_Ptr;
    double * f_BI_Equ_BS_Node_Ptr;
    double * f_BS_Equ_DT_Node_Ptr;
    double * f_BD_Equ_BI_Node_Ptr;
    double * f_BI_Equ_BD_Node_Ptr;
    double * f_BD_Equ_DT_Node_Ptr;
    double * f_B_Equ_B_Node_Ptr;
    double * f_B_Equ_BI_Node_Ptr;
    double * f_BI_Equ_B_Node_Ptr;
    double * f_B_Equ_DT_Node_Ptr;
    double * f_DT_Equ_D_Node_Ptr;
    double * f_DT_Equ_DI_Node_Ptr;
    double * f_DT_Equ_S_Node_Ptr;
    double * f_DT_Equ_SI_Node_Ptr;
    double * f_DT_Equ_BP_Node_Ptr;
    double * f_DT_Equ_GP_Node_Ptr;
    double * f_DT_Equ_DT_Node_Ptr;
    double * f_NOI2_Equ_NOI2_Node_Ptr;
    double * f_NOI2_Equ_GP_Node_Ptr;
    double * f_NOI2_Equ_SI_Node_Ptr;
    double * f_NOI2_Equ_BP_Node_Ptr;
    double * f_NOI2_Equ_DI_Node_Ptr;
    double * f_NOI2_Equ_DT_Node_Ptr;
    double * f_NOI_Equ_DT_Node_Ptr;
    double * f_NOI_Equ_SI_Node_Ptr;
    double * f_NOI_Equ_BP_Node_Ptr;
    double * f_NOI_Equ_GP_Node_Ptr;
    double * f_NOI_Equ_DI_Node_Ptr;
    double * f_NOI_Equ_NOI2_Node_Ptr;
    double * f_NOI_Equ_NOI_Node_Ptr;
    double * f_GP_Equ_NOI_Node_Ptr;
    double * f_SI_Equ_NOI_Node_Ptr;
    double * f_DI_Equ_NOI_Node_Ptr;
    double * f_DI_Equ_NOI2_Node_Ptr;
    double * f_SI_Equ_NOI2_Node_Ptr;
    double * f_BS_Equ_BP_Node_Ptr;
    double * f_BS_Equ_GP_Node_Ptr;
    double * f_BD_Equ_BP_Node_Ptr;
    double * f_BD_Equ_GP_Node_Ptr;
    double * q_DI_Equ_DT_Node_Ptr;
    double * q_BP_Equ_DT_Node_Ptr;
    double * q_DI_Equ_SI_Node_Ptr;
    double * q_DI_Equ_BP_Node_Ptr;
    double * q_BP_Equ_SI_Node_Ptr;
    double * q_BP_Equ_BP_Node_Ptr;
    double * q_DI_Equ_GP_Node_Ptr;
    double * q_BP_Equ_GP_Node_Ptr;
    double * q_DI_Equ_DI_Node_Ptr;
    double * q_BP_Equ_DI_Node_Ptr;
    double * q_SI_Equ_SI_Node_Ptr;
    double * q_SI_Equ_BP_Node_Ptr;
    double * q_SI_Equ_GP_Node_Ptr;
    double * q_SI_Equ_DI_Node_Ptr;
    double * q_SI_Equ_DT_Node_Ptr;
    double * q_GP_Equ_DT_Node_Ptr;
    double * q_GP_Equ_SI_Node_Ptr;
    double * q_GP_Equ_BP_Node_Ptr;
    double * q_GP_Equ_DI_Node_Ptr;
    double * q_GP_Equ_GP_Node_Ptr;
    double * q_BS_Equ_SI_Node_Ptr;
    double * q_BS_Equ_BS_Node_Ptr;
    double * q_SI_Equ_BS_Node_Ptr;
    double * q_BS_Equ_DI_Node_Ptr;
    double * q_BS_Equ_BD_Node_Ptr;
    double * q_SI_Equ_BD_Node_Ptr;
    double * q_BD_Equ_SI_Node_Ptr;
    double * q_BD_Equ_BS_Node_Ptr;
    double * q_DI_Equ_BS_Node_Ptr;
    double * q_BD_Equ_DI_Node_Ptr;
    double * q_BD_Equ_BD_Node_Ptr;
    double * q_DI_Equ_BD_Node_Ptr;
    double * q_G_Equ_G_Node_Ptr;
    double * q_G_Equ_GP_Node_Ptr;
    double * q_GP_Equ_G_Node_Ptr;
    double * q_G_Equ_DT_Node_Ptr;
    double * q_S_Equ_S_Node_Ptr;
    double * q_S_Equ_SI_Node_Ptr;
    double * q_SI_Equ_S_Node_Ptr;
    double * q_S_Equ_DT_Node_Ptr;
    double * q_D_Equ_D_Node_Ptr;
    double * q_D_Equ_DI_Node_Ptr;
    double * q_DI_Equ_D_Node_Ptr;
    double * q_D_Equ_DT_Node_Ptr;
    double * q_BP_Equ_BI_Node_Ptr;
    double * q_BI_Equ_BP_Node_Ptr;
    double * q_BI_Equ_BI_Node_Ptr;
    double * q_BI_Equ_DT_Node_Ptr;
    double * q_BS_Equ_BI_Node_Ptr;
    double * q_BI_Equ_BS_Node_Ptr;
    double * q_BS_Equ_DT_Node_Ptr;
    double * q_BD_Equ_BI_Node_Ptr;
    double * q_BI_Equ_BD_Node_Ptr;
    double * q_BD_Equ_DT_Node_Ptr;
    double * q_B_Equ_B_Node_Ptr;
    double * q_B_Equ_BI_Node_Ptr;
    double * q_BI_Equ_B_Node_Ptr;
    double * q_B_Equ_DT_Node_Ptr;
    double * q_DT_Equ_D_Node_Ptr;
    double * q_DT_Equ_DI_Node_Ptr;
    double * q_DT_Equ_S_Node_Ptr;
    double * q_DT_Equ_SI_Node_Ptr;
    double * q_DT_Equ_BP_Node_Ptr;
    double * q_DT_Equ_GP_Node_Ptr;
    double * q_DT_Equ_DT_Node_Ptr;
    double * q_NOI2_Equ_NOI2_Node_Ptr;
    double * q_NOI2_Equ_GP_Node_Ptr;
    double * q_NOI2_Equ_SI_Node_Ptr;
    double * q_NOI2_Equ_BP_Node_Ptr;
    double * q_NOI2_Equ_DI_Node_Ptr;
    double * q_NOI2_Equ_DT_Node_Ptr;
    double * q_NOI_Equ_DT_Node_Ptr;
    double * q_NOI_Equ_SI_Node_Ptr;
    double * q_NOI_Equ_BP_Node_Ptr;
    double * q_NOI_Equ_GP_Node_Ptr;
    double * q_NOI_Equ_DI_Node_Ptr;
    double * q_NOI_Equ_NOI2_Node_Ptr;
    double * q_NOI_Equ_NOI_Node_Ptr;
    double * q_GP_Equ_NOI_Node_Ptr;
    double * q_SI_Equ_NOI_Node_Ptr;
    double * q_DI_Equ_NOI_Node_Ptr;
    double * q_DI_Equ_NOI2_Node_Ptr;
    double * q_SI_Equ_NOI2_Node_Ptr;
    double * q_BS_Equ_BP_Node_Ptr;
    double * q_BS_Equ_GP_Node_Ptr;
    double * q_BD_Equ_BP_Node_Ptr;
    double * q_BD_Equ_GP_Node_Ptr;
    // Jacobian offsets
    int A_DI_Equ_DT_NodeOffset;
    int A_BP_Equ_DT_NodeOffset;
    int A_DI_Equ_SI_NodeOffset;
    int A_DI_Equ_BP_NodeOffset;
    int A_BP_Equ_SI_NodeOffset;
    int A_BP_Equ_BP_NodeOffset;
    int A_DI_Equ_GP_NodeOffset;
    int A_BP_Equ_GP_NodeOffset;
    int A_DI_Equ_DI_NodeOffset;
    int A_BP_Equ_DI_NodeOffset;
    int A_SI_Equ_SI_NodeOffset;
    int A_SI_Equ_BP_NodeOffset;
    int A_SI_Equ_GP_NodeOffset;
    int A_SI_Equ_DI_NodeOffset;
    int A_SI_Equ_DT_NodeOffset;
    int A_GP_Equ_DT_NodeOffset;
    int A_GP_Equ_SI_NodeOffset;
    int A_GP_Equ_BP_NodeOffset;
    int A_GP_Equ_DI_NodeOffset;
    int A_GP_Equ_GP_NodeOffset;
    int A_BS_Equ_SI_NodeOffset;
    int A_BS_Equ_BS_NodeOffset;
    int A_SI_Equ_BS_NodeOffset;
    int A_BS_Equ_DI_NodeOffset;
    int A_BS_Equ_BD_NodeOffset;
    int A_SI_Equ_BD_NodeOffset;
    int A_BD_Equ_SI_NodeOffset;
    int A_BD_Equ_BS_NodeOffset;
    int A_DI_Equ_BS_NodeOffset;
    int A_BD_Equ_DI_NodeOffset;
    int A_BD_Equ_BD_NodeOffset;
    int A_DI_Equ_BD_NodeOffset;
    int A_G_Equ_G_NodeOffset;
    int A_G_Equ_GP_NodeOffset;
    int A_GP_Equ_G_NodeOffset;
    int A_G_Equ_DT_NodeOffset;
    int A_S_Equ_S_NodeOffset;
    int A_S_Equ_SI_NodeOffset;
    int A_SI_Equ_S_NodeOffset;
    int A_S_Equ_DT_NodeOffset;
    int A_D_Equ_D_NodeOffset;
    int A_D_Equ_DI_NodeOffset;
    int A_DI_Equ_D_NodeOffset;
    int A_D_Equ_DT_NodeOffset;
    int A_BP_Equ_BI_NodeOffset;
    int A_BI_Equ_BP_NodeOffset;
    int A_BI_Equ_BI_NodeOffset;
    int A_BI_Equ_DT_NodeOffset;
    int A_BS_Equ_BI_NodeOffset;
    int A_BI_Equ_BS_NodeOffset;
    int A_BS_Equ_DT_NodeOffset;
    int A_BD_Equ_BI_NodeOffset;
    int A_BI_Equ_BD_NodeOffset;
    int A_BD_Equ_DT_NodeOffset;
    int A_B_Equ_B_NodeOffset;
    int A_B_Equ_BI_NodeOffset;
    int A_BI_Equ_B_NodeOffset;
    int A_B_Equ_DT_NodeOffset;
    int A_DT_Equ_D_NodeOffset;
    int A_DT_Equ_DI_NodeOffset;
    int A_DT_Equ_S_NodeOffset;
    int A_DT_Equ_SI_NodeOffset;
    int A_DT_Equ_BP_NodeOffset;
    int A_DT_Equ_GP_NodeOffset;
    int A_DT_Equ_DT_NodeOffset;
    int A_NOI2_Equ_NOI2_NodeOffset;
    int A_NOI2_Equ_GP_NodeOffset;
    int A_NOI2_Equ_SI_NodeOffset;
    int A_NOI2_Equ_BP_NodeOffset;
    int A_NOI2_Equ_DI_NodeOffset;
    int A_NOI2_Equ_DT_NodeOffset;
    int A_NOI_Equ_DT_NodeOffset;
    int A_NOI_Equ_SI_NodeOffset;
    int A_NOI_Equ_BP_NodeOffset;
    int A_NOI_Equ_GP_NodeOffset;
    int A_NOI_Equ_DI_NodeOffset;
    int A_NOI_Equ_NOI2_NodeOffset;
    int A_NOI_Equ_NOI_NodeOffset;
    int A_GP_Equ_NOI_NodeOffset;
    int A_SI_Equ_NOI_NodeOffset;
    int A_DI_Equ_NOI_NodeOffset;
    int A_DI_Equ_NOI2_NodeOffset;
    int A_SI_Equ_NOI2_NodeOffset;
    int A_BS_Equ_BP_NodeOffset;
    int A_BS_Equ_GP_NodeOffset;
    int A_BD_Equ_BP_NodeOffset;
    int A_BD_Equ_GP_NodeOffset;
    // end of Jacobian and pointers
   // node numbers
    static const int admsNodeID_D = 0;
    static const int admsNodeID_G = 1;
    static const int admsNodeID_S = 2;
    static const int admsNodeID_B = 3;
    static const int admsNodeID_DT = 4;
    static const int admsNodeID_NOI = 0+5;
    static const int admsNodeID_NOI2 = 1+5;
    static const int admsNodeID_GP = 2+5;
    static const int admsNodeID_SI = 3+5;
    static const int admsNodeID_DI = 4+5;
    static const int admsNodeID_BP = 5+5;
    static const int admsNodeID_BI = 6+5;
    static const int admsNodeID_BS = 7+5;
    static const int admsNodeID_BD = 8+5;
    static const int admsNodeID_GND = -1;
   // end node numbers
   // Additional IDs for branch equations
   // end branch numbers
   // Probe numbers
    static const int admsProbeID_V_DI_GND = 0;
    static const int admsProbeID_V_BS_GND = 1;
    static const int admsProbeID_V_BD_GND = 2;
    static const int admsProbeID_V_SI_GND = 3;
    static const int admsProbeID_V_BP_GND = 4;
    static const int admsProbeID_V_GP_GND = 5;
    static const int admsProbeID_V_NOI_GND = 6;
    static const int admsProbeID_V_NOI2_GND = 7;
    static const int admsProbeID_V_B_BI = 8;
    static const int admsProbeID_V_BD_BI = 9;
    static const int admsProbeID_V_BS_BI = 10;
    static const int admsProbeID_V_BP_BI = 11;
    static const int admsProbeID_V_D_DI = 12;
    static const int admsProbeID_V_S_SI = 13;
    static const int admsProbeID_V_G_GP = 14;
    static const int admsProbeID_V_DI_BD = 15;
    static const int admsProbeID_V_SI_BS = 16;
    static const int admsProbeID_V_SI_BP = 17;
    static const int admsProbeID_V_DI_SI = 18;
    static const int admsProbeID_V_GP_SI = 19;
    static const int admsProbeID_Temp_DT_GND = 20;
   // end probe numbers
   // Store LIDs
   // end store LIDs
   // Store LIDs for output vars
    int li_store_ctype;
    int li_store_sdint;
    int li_store_ise;
    int li_store_ige;
    int li_store_ide;
    int li_store_ibe;
    int li_store_ids;
    int li_store_idb;
    int li_store_isb;
    int li_store_igs;
    int li_store_igd;
    int li_store_igb;
    int li_store_idedge;
    int li_store_igcs;
    int li_store_igcd;
    int li_store_iavl;
    int li_store_igisl;
    int li_store_igidl;
    int li_store_ijs;
    int li_store_ijsbot;
    int li_store_ijsgat;
    int li_store_ijssti;
    int li_store_ijd;
    int li_store_ijdbot;
    int li_store_ijdgat;
    int li_store_ijdsti;
    int li_store_vds;
    int li_store_vgs;
    int li_store_vsb;
    int li_store_vto;
    int li_store_vts;
    int li_store_vth;
    int li_store_vgt;
    int li_store_vdss;
    int li_store_vsat;
    int li_store_gm;
    int li_store_gmb;
    int li_store_gds;
    int li_store_gjs;
    int li_store_gjd;
    int li_store_cdd;
    int li_store_cdg;
    int li_store_cds;
    int li_store_cdb;
    int li_store_cgd;
    int li_store_cgg;
    int li_store_cgs;
    int li_store_cgb;
    int li_store_csd;
    int li_store_csg;
    int li_store_css;
    int li_store_csb;
    int li_store_cbd;
    int li_store_cbg;
    int li_store_cbs;
    int li_store_cbb;
    int li_store_cgsol;
    int li_store_cgdol;
    int li_store_cjs;
    int li_store_cjsbot;
    int li_store_cjsgat;
    int li_store_cjssti;
    int li_store_cjd;
    int li_store_cjdbot;
    int li_store_cjdgat;
    int li_store_cjdsti;
    int li_store_weff;
    int li_store_leff;
    int li_store_u;
    int li_store_rout;
    int li_store_vearly;
    int li_store_beff;
    int li_store_fug;
    int li_store_rg;
    int li_store_sfl;
    int li_store_sqrtsff;
    int li_store_sqrtsfw;
    int li_store_sid;
    int li_store_sig;
    int li_store_cigid;
    int li_store_fknee;
    int li_store_sigs;
    int li_store_sigd;
    int li_store_siavl;
    int li_store_ssi;
    int li_store_sdi;
    int li_store_sfledge;
    int li_store_sidedge;
    int li_store_lp_vfb;
    int li_store_lp_stvfb;
    int li_store_lp_tox;
    int li_store_lp_epsrox;
    int li_store_lp_neff;
    int li_store_lp_facneffac;
    int li_store_lp_gfacnud;
    int li_store_lp_vsbnud;
    int li_store_lp_dvsbnud;
    int li_store_lp_vnsub;
    int li_store_lp_nslp;
    int li_store_lp_dnsub;
    int li_store_lp_dphib;
    int li_store_lp_delvtac;
    int li_store_lp_np;
    int li_store_lp_ct;
    int li_store_lp_toxov;
    int li_store_lp_toxovd;
    int li_store_lp_nov;
    int li_store_lp_novd;
    int li_store_lp_cf;
    int li_store_lp_cfd;
    int li_store_lp_cfb;
    int li_store_lp_psce;
    int li_store_lp_psceb;
    int li_store_lp_psced;
    int li_store_lp_betn;
    int li_store_lp_stbet;
    int li_store_lp_mue;
    int li_store_lp_stmue;
    int li_store_lp_themu;
    int li_store_lp_stthemu;
    int li_store_lp_cs;
    int li_store_lp_stcs;
    int li_store_lp_xcor;
    int li_store_lp_stxcor;
    int li_store_lp_feta;
    int li_store_lp_rs;
    int li_store_lp_strs;
    int li_store_lp_rsb;
    int li_store_lp_rsg;
    int li_store_lp_thesat;
    int li_store_lp_stthesat;
    int li_store_lp_thesatb;
    int li_store_lp_thesatg;
    int li_store_lp_ax;
    int li_store_lp_alp;
    int li_store_lp_alp1;
    int li_store_lp_alp2;
    int li_store_lp_vp;
    int li_store_lp_a1;
    int li_store_lp_a2;
    int li_store_lp_sta2;
    int li_store_lp_a3;
    int li_store_lp_a4;
    int li_store_lp_gco;
    int li_store_lp_iginv;
    int li_store_lp_igov;
    int li_store_lp_igovd;
    int li_store_lp_stig;
    int li_store_lp_gc2;
    int li_store_lp_gc3;
    int li_store_lp_chib;
    int li_store_lp_agidl;
    int li_store_lp_agidld;
    int li_store_lp_bgidl;
    int li_store_lp_bgidld;
    int li_store_lp_stbgidl;
    int li_store_lp_stbgidld;
    int li_store_lp_cgidl;
    int li_store_lp_cgidld;
    int li_store_lp_cox;
    int li_store_lp_cgov;
    int li_store_lp_cgovd;
    int li_store_lp_cgbov;
    int li_store_lp_cfr;
    int li_store_lp_cfrd;
    int li_store_lp_fnt;
    int li_store_lp_fntexc;
    int li_store_lp_nfa;
    int li_store_lp_nfb;
    int li_store_lp_nfc;
    int li_store_lp_ef;
    int li_store_lp_vfbedge;
    int li_store_lp_stvfbedge;
    int li_store_lp_dphibedge;
    int li_store_lp_neffedge;
    int li_store_lp_ctedge;
    int li_store_lp_betnedge;
    int li_store_lp_stbetedge;
    int li_store_lp_psceedge;
    int li_store_lp_pscebedge;
    int li_store_lp_pscededge;
    int li_store_lp_cfedge;
    int li_store_lp_cfdedge;
    int li_store_lp_cfbedge;
    int li_store_lp_fntedge;
    int li_store_lp_nfaedge;
    int li_store_lp_nfbedge;
    int li_store_lp_nfcedge;
    int li_store_lp_efedge;
    int li_store_lp_rg;
    int li_store_lp_rse;
    int li_store_lp_rde;
    int li_store_lp_rbulk;
    int li_store_lp_rwell;
    int li_store_lp_rjuns;
    int li_store_lp_rjund;
    int li_store_lp_rth;
    int li_store_lp_cth;
    int li_store_lp_strth;
    int li_store_pdiss;
    int li_store_dtsh;
    int li_store_tk;
    int li_store_cjosbot;
    int li_store_cjossti;
    int li_store_cjosgat;
    int li_store_vbisbot;
    int li_store_vbissti;
    int li_store_vbisgat;
    int li_store_idsatsbot;
    int li_store_idsatssti;
    int li_store_idsatsgat;
    int li_store_cjosbotd;
    int li_store_cjosstid;
    int li_store_cjosgatd;
    int li_store_vbisbotd;
    int li_store_vbisstid;
    int li_store_vbisgatd;
    int li_store_idsatsbotd;
    int li_store_idsatsstid;
    int li_store_idsatsgatd;
   // end store LIDs for output vars
     // bools for collapsing nodes
     bool collapseNode_GP;
     bool collapseNode_SI;
     bool collapseNode_DI;
     bool collapseNode_BP;
     bool collapseNode_BI;
     bool collapseNode_BS;
     bool collapseNode_BD;
 // Arrays to hold probes
 std::vector < double > probeVars;
 std::vector < std::vector < double > > d_probeVars;
 // Arrays to hold contributions
 // dynamic contributions are differentiated w.r.t time
 std::vector < double > staticContributions;
 std::vector < std::vector < double > > d_staticContributions;
 std::vector < double > dynamicContributions;
 std::vector < std::vector < double > > d_dynamicContributions;
//vectors to hold noise information for communication between methods
std::vector<double> noiseContribsPower;
std::vector<double> noiseContribsExponent;


    // this is what we'll use when any model uses $temperature.  We'll
    // set it in updateTemperature, and initialize it to whatever
    // is in devOptions when the instance is constructed.
    double admsTemperature;

    // vt at $temperature;
    double adms_vt_nom;


    // This one is for the annoying bogus "XyceADMSInstTemp" parameter
    // that we need so we can set it from the device manager when there's no
    // "TEMP" parameter to use
    double admsInstTemp;


    JacobianStamp jacStamp;
    IdVector nodeMap;
    PairMap pairToJacStampMap;

    // These instance-owned vectors are for storage of lead current data
    std::vector<double> leadCurrentF;
    std::vector<double> leadCurrentQ;


    };


//-----------------------------------------------------------------------------
// Class         : Model

// Purpose       :
// Special Notes :
// Creator       :
// Creation Date :
//-----------------------------------------------------------------------------
class Model : public DeviceModel
{
    typedef std::vector<Instance *> InstanceVector;

    friend class ParametricData<Model>;
    friend class Instance;
#ifdef Xyce_ADMS_SENSITIVITIES
    friend class InstanceSensitivity;
    friend class ModelSensitivity;
#endif // Xyce_ADMS_SENSITIVITIES
    friend struct Traits;

  public:
    Model(
      const Configuration &       configuration,
      const ModelBlock &          model_block,
      const FactoryBlock &        factory_block);

    ~Model();

private:
    Model(const Model &);
    Model &operator=(const Model &);

public:
    virtual void forEachInstance(DeviceInstanceOp &op) const /* override */;
    virtual std::ostream &printOutInstances(std::ostream &os) const;
    bool processParams();
    bool processInstanceParams();

  private:

  public:
    void addInstance(Instance *instance)
    {
      instanceContainer.push_back(instance);
    }

    void setupBaseInstanceContainer()
    {
      std::vector<Instance*>::iterator iter = instanceContainer.begin();
      std::vector<Instance*>::iterator end   = instanceContainer.end();
      for ( ; iter!=end; ++iter)
      {
      Xyce::Device::DeviceModel::baseInstanceContainer.push_back( static_cast<Xyce::Device::DeviceInstance *>(*iter) );
    }
  }

  private:
    std::vector<Instance*> instanceContainer;

  private:

    // This one is for the annoying bogus "XyceADMSInstTemp" parameter
    // that we need so we can set it from the device manager when there's no
    // "TEMP" model parameter to use
    double admsModTemp;
// Begin verilog Model Variables
//   Model Parameters
    int LEVEL;
    int TYPE;
    double TR;
    int SWGEO;
    int SWIGATE;
    int SWIMPACT;
    int SWGIDL;
    int SWJUNCAP;
    int SWJUNASYM;
    int SWNUD;
    int SWEDGE;
    int SWDELVTAC;
    int SWIGN;
    double QMC;
    double VFB;
    double STVFB;
    double TOX;
    double EPSROX;
    double NEFF;
    double FACNEFFAC;
    double GFACNUD;
    double VSBNUD;
    double DVSBNUD;
    double VNSUB;
    double NSLP;
    double DNSUB;
    double DPHIB;
    double DELVTAC;
    double NP;
    double CT;
    double TOXOV;
    double TOXOVD;
    double NOV;
    double NOVD;
    double CF;
    double CFD;
    double CFB;
    double PSCE;
    double PSCEB;
    double PSCED;
    double BETN;
    double STBET;
    double MUE;
    double STMUE;
    double THEMU;
    double STTHEMU;
    double CS;
    double STCS;
    double XCOR;
    double STXCOR;
    double FETA;
    double RS;
    double STRS;
    double RSB;
    double RSG;
    double THESAT;
    double STTHESAT;
    double THESATB;
    double THESATG;
    double AX;
    double ALP;
    double ALP1;
    double ALP2;
    double VP;
    double A1;
    double A2;
    double STA2;
    double A3;
    double A4;
    double GCO;
    double IGINV;
    double IGOV;
    double IGOVD;
    double STIG;
    double GC2;
    double GC3;
    double CHIB;
    double AGIDL;
    double AGIDLD;
    double BGIDL;
    double BGIDLD;
    double STBGIDL;
    double STBGIDLD;
    double CGIDL;
    double CGIDLD;
    double COX;
    double CGOV;
    double CGOVD;
    double CGBOV;
    double CFR;
    double CFRD;
    double FNT;
    double FNTEXC;
    double NFA;
    double NFB;
    double NFC;
    double EF;
    double VFBEDGE;
    double STVFBEDGE;
    double DPHIBEDGE;
    double NEFFEDGE;
    double CTEDGE;
    double BETNEDGE;
    double STBETEDGE;
    double PSCEEDGE;
    double PSCEBEDGE;
    double PSCEDEDGE;
    double CFEDGE;
    double CFDEDGE;
    double CFBEDGE;
    double FNTEDGE;
    double NFAEDGE;
    double NFBEDGE;
    double NFCEDGE;
    double EFEDGE;
    double RG;
    double RSE;
    double RDE;
    double RBULK;
    double RWELL;
    double RJUNS;
    double RJUND;
    double RTH;
    double CTH;
    double STRTH;
    double POVFB;
    double PLVFB;
    double PWVFB;
    double PLWVFB;
    double POSTVFB;
    double PLSTVFB;
    double PWSTVFB;
    double PLWSTVFB;
    double POTOX;
    double POEPSROX;
    double PONEFF;
    double PLNEFF;
    double PWNEFF;
    double PLWNEFF;
    double POFACNEFFAC;
    double PLFACNEFFAC;
    double PWFACNEFFAC;
    double PLWFACNEFFAC;
    double POGFACNUD;
    double PLGFACNUD;
    double PWGFACNUD;
    double PLWGFACNUD;
    double POVSBNUD;
    double PODVSBNUD;
    double POVNSUB;
    double PONSLP;
    double PODNSUB;
    double PODPHIB;
    double PLDPHIB;
    double PWDPHIB;
    double PLWDPHIB;
    double PODELVTAC;
    double PLDELVTAC;
    double PWDELVTAC;
    double PLWDELVTAC;
    double PONP;
    double PLNP;
    double PWNP;
    double PLWNP;
    double POCT;
    double PLCT;
    double PWCT;
    double PLWCT;
    double POTOXOV;
    double POTOXOVD;
    double PONOV;
    double PLNOV;
    double PWNOV;
    double PLWNOV;
    double PONOVD;
    double PLNOVD;
    double PWNOVD;
    double PLWNOVD;
    double POCF;
    double PLCF;
    double PWCF;
    double PLWCF;
    double POCFD;
    double POCFB;
    double POPSCE;
    double PLPSCE;
    double PWPSCE;
    double PLWPSCE;
    double POPSCEB;
    double POPSCED;
    double POBETN;
    double PLBETN;
    double PWBETN;
    double PLWBETN;
    double POSTBET;
    double PLSTBET;
    double PWSTBET;
    double PLWSTBET;
    double POMUE;
    double PLMUE;
    double PWMUE;
    double PLWMUE;
    double POSTMUE;
    double POTHEMU;
    double POSTTHEMU;
    double POCS;
    double PLCS;
    double PWCS;
    double PLWCS;
    double POSTCS;
    double POXCOR;
    double PLXCOR;
    double PWXCOR;
    double PLWXCOR;
    double POSTXCOR;
    double POFETA;
    double PORS;
    double PLRS;
    double PWRS;
    double PLWRS;
    double POSTRS;
    double PORSB;
    double PORSG;
    double POTHESAT;
    double PLTHESAT;
    double PWTHESAT;
    double PLWTHESAT;
    double POSTTHESAT;
    double PLSTTHESAT;
    double PWSTTHESAT;
    double PLWSTTHESAT;
    double POTHESATB;
    double PLTHESATB;
    double PWTHESATB;
    double PLWTHESATB;
    double POTHESATG;
    double PLTHESATG;
    double PWTHESATG;
    double PLWTHESATG;
    double POAX;
    double PLAX;
    double PWAX;
    double PLWAX;
    double POALP;
    double PLALP;
    double PWALP;
    double PLWALP;
    double POALP1;
    double PLALP1;
    double PWALP1;
    double PLWALP1;
    double POALP2;
    double PLALP2;
    double PWALP2;
    double PLWALP2;
    double POVP;
    double POA1;
    double PLA1;
    double PWA1;
    double PLWA1;
    double POA2;
    double POSTA2;
    double POA3;
    double PLA3;
    double PWA3;
    double PLWA3;
    double POA4;
    double PLA4;
    double PWA4;
    double PLWA4;
    double POGCO;
    double POIGINV;
    double PLIGINV;
    double PWIGINV;
    double PLWIGINV;
    double POIGOV;
    double PLIGOV;
    double PWIGOV;
    double PLWIGOV;
    double POIGOVD;
    double PLIGOVD;
    double PWIGOVD;
    double PLWIGOVD;
    double POSTIG;
    double POGC2;
    double POGC3;
    double POCHIB;
    double POAGIDL;
    double PLAGIDL;
    double PWAGIDL;
    double PLWAGIDL;
    double POAGIDLD;
    double PLAGIDLD;
    double PWAGIDLD;
    double PLWAGIDLD;
    double POBGIDL;
    double POBGIDLD;
    double POSTBGIDL;
    double POSTBGIDLD;
    double POCGIDL;
    double POCGIDLD;
    double POCOX;
    double PLCOX;
    double PWCOX;
    double PLWCOX;
    double POCGOV;
    double PLCGOV;
    double PWCGOV;
    double PLWCGOV;
    double POCGOVD;
    double PLCGOVD;
    double PWCGOVD;
    double PLWCGOVD;
    double POCGBOV;
    double PLCGBOV;
    double PWCGBOV;
    double PLWCGBOV;
    double POCFR;
    double PLCFR;
    double PWCFR;
    double PLWCFR;
    double POCFRD;
    double PLCFRD;
    double PWCFRD;
    double PLWCFRD;
    double POFNT;
    double POFNTEXC;
    double PLFNTEXC;
    double PWFNTEXC;
    double PLWFNTEXC;
    double PONFA;
    double PLNFA;
    double PWNFA;
    double PLWNFA;
    double PONFB;
    double PLNFB;
    double PWNFB;
    double PLWNFB;
    double PONFC;
    double PLNFC;
    double PWNFC;
    double PLWNFC;
    double POEF;
    double POVFBEDGE;
    double POSTVFBEDGE;
    double PLSTVFBEDGE;
    double PWSTVFBEDGE;
    double PLWSTVFBEDGE;
    double PODPHIBEDGE;
    double PLDPHIBEDGE;
    double PWDPHIBEDGE;
    double PLWDPHIBEDGE;
    double PONEFFEDGE;
    double PLNEFFEDGE;
    double PWNEFFEDGE;
    double PLWNEFFEDGE;
    double POCTEDGE;
    double PLCTEDGE;
    double PWCTEDGE;
    double PLWCTEDGE;
    double POBETNEDGE;
    double PLBETNEDGE;
    double PWBETNEDGE;
    double PLWBETNEDGE;
    double POSTBETEDGE;
    double PLSTBETEDGE;
    double PWSTBETEDGE;
    double PLWSTBETEDGE;
    double POPSCEEDGE;
    double PLPSCEEDGE;
    double PWPSCEEDGE;
    double PLWPSCEEDGE;
    double POPSCEBEDGE;
    double POPSCEDEDGE;
    double POCFEDGE;
    double PLCFEDGE;
    double PWCFEDGE;
    double PLWCFEDGE;
    double POCFDEDGE;
    double POCFBEDGE;
    double POFNTEDGE;
    double PONFAEDGE;
    double PLNFAEDGE;
    double PWNFAEDGE;
    double PLWNFAEDGE;
    double PONFBEDGE;
    double PLNFBEDGE;
    double PWNFBEDGE;
    double PLWNFBEDGE;
    double PONFCEDGE;
    double PLNFCEDGE;
    double PWNFCEDGE;
    double PLWNFCEDGE;
    double POEFEDGE;
    double POKVTHOWE;
    double PLKVTHOWE;
    double PWKVTHOWE;
    double PLWKVTHOWE;
    double POKUOWE;
    double PLKUOWE;
    double PWKUOWE;
    double PLWKUOWE;
    double LMIN;
    double LMAX;
    double WMIN;
    double WMAX;
    double LVARO;
    double LVARL;
    double LVARW;
    double LAP;
    double WVARO;
    double WVARL;
    double WVARW;
    double WOT;
    double DLQ;
    double DWQ;
    double VFBO;
    double VFBL;
    double VFBW;
    double VFBLW;
    double STVFBO;
    double STVFBL;
    double STVFBW;
    double STVFBLW;
    double TOXO;
    double EPSROXO;
    double NSUBO;
    double NSUBW;
    double WSEG;
    double NPCK;
    double NPCKW;
    double WSEGP;
    double LPCK;
    double LPCKW;
    double FOL1;
    double FOL2;
    double FACNEFFACO;
    double FACNEFFACL;
    double FACNEFFACW;
    double FACNEFFACLW;
    double GFACNUDO;
    double GFACNUDL;
    double GFACNUDLEXP;
    double GFACNUDW;
    double GFACNUDLW;
    double VSBNUDO;
    double DVSBNUDO;
    double VNSUBO;
    double NSLPO;
    double DNSUBO;
    double DPHIBO;
    double DPHIBL;
    double DPHIBLEXP;
    double DPHIBW;
    double DPHIBLW;
    double DELVTACO;
    double DELVTACL;
    double DELVTACLEXP;
    double DELVTACW;
    double DELVTACLW;
    double NPO;
    double NPL;
    double CTO;
    double CTL;
    double CTLEXP;
    double CTW;
    double CTLW;
    double TOXOVO;
    double TOXOVDO;
    double LOV;
    double LOVD;
    double NOVO;
    double NOVDO;
    double CFL;
    double CFLEXP;
    double CFW;
    double CFDO;
    double CFBO;
    double PSCEL;
    double PSCELEXP;
    double PSCEW;
    double PSCEBO;
    double PSCEDO;
    double UO;
    double FBET1;
    double FBET1W;
    double LP1;
    double LP1W;
    double FBET2;
    double LP2;
    double BETW1;
    double BETW2;
    double WBET;
    double STBETO;
    double STBETL;
    double STBETW;
    double STBETLW;
    double MUEO;
    double MUEW;
    double STMUEO;
    double THEMUO;
    double STTHEMUO;
    double CSO;
    double CSL;
    double CSLEXP;
    double CSW;
    double CSLW;
    double STCSO;
    double XCORO;
    double XCORL;
    double XCORW;
    double XCORLW;
    double STXCORO;
    double FETAO;
    double RSW1;
    double RSW2;
    double STRSO;
    double RSBO;
    double RSGO;
    double THESATO;
    double THESATL;
    double THESATLEXP;
    double THESATW;
    double THESATLW;
    double STTHESATO;
    double STTHESATL;
    double STTHESATW;
    double STTHESATLW;
    double THESATBO;
    double THESATGO;
    double AXO;
    double AXL;
    double ALPL;
    double ALPLEXP;
    double ALPW;
    double ALP1L1;
    double ALP1LEXP;
    double ALP1L2;
    double ALP1W;
    double ALP2L1;
    double ALP2LEXP;
    double ALP2L2;
    double ALP2W;
    double VPO;
    double A1O;
    double A1L;
    double A1W;
    double A2O;
    double STA2O;
    double A3O;
    double A3L;
    double A3W;
    double A4O;
    double A4L;
    double A4W;
    double GCOO;
    double IGINVLW;
    double IGOVW;
    double IGOVDW;
    double STIGO;
    double GC2O;
    double GC3O;
    double CHIBO;
    double AGIDLW;
    double AGIDLDW;
    double BGIDLO;
    double BGIDLDO;
    double STBGIDLO;
    double STBGIDLDO;
    double CGIDLO;
    double CGIDLDO;
    double CGBOVL;
    double CFRW;
    double CFRDW;
    double FNTO;
    double FNTEXCL;
    double NFALW;
    double NFBLW;
    double NFCLW;
    double EFO;
    double LINTNOI;
    double ALPNOI;
    double WEDGE;
    double WEDGEW;
    double VFBEDGEO;
    double STVFBEDGEO;
    double STVFBEDGEL;
    double STVFBEDGEW;
    double STVFBEDGELW;
    double DPHIBEDGEO;
    double DPHIBEDGEL;
    double DPHIBEDGELEXP;
    double DPHIBEDGEW;
    double DPHIBEDGELW;
    double NSUBEDGEO;
    double NSUBEDGEL;
    double NSUBEDGEW;
    double NSUBEDGELW;
    double CTEDGEO;
    double CTEDGEL;
    double CTEDGELEXP;
    double FBETEDGE;
    double LPEDGE;
    double BETEDGEW;
    double STBETEDGEO;
    double STBETEDGEL;
    double STBETEDGEW;
    double STBETEDGELW;
    double PSCEEDGEL;
    double PSCEEDGELEXP;
    double PSCEEDGEW;
    double PSCEBEDGEO;
    double PSCEDEDGEO;
    double CFEDGEL;
    double CFEDGELEXP;
    double CFEDGEW;
    double CFDEDGEO;
    double CFBEDGEO;
    double FNTEDGEO;
    double NFAEDGELW;
    double NFBEDGELW;
    double NFCEDGELW;
    double EFEDGEO;
    double KVTHOWEO;
    double KVTHOWEL;
    double KVTHOWEW;
    double KVTHOWELW;
    double KUOWEO;
    double KUOWEL;
    double KUOWEW;
    double KUOWELW;
    double RGO;
    double RINT;
    double RVPOLY;
    double RSHG;
    double DLSIL;
    double RSH;
    double RSHD;
    double RBULKO;
    double RWELLO;
    double RJUNSO;
    double RJUNDO;
    double RTHO;
    double RTHW1;
    double RTHW2;
    double RTHLW;
    double CTHO;
    double CTHW1;
    double CTHW2;
    double CTHLW;
    double STRTHO;
    double SAREF;
    double SBREF;
    double WLOD;
    double KUO;
    double KVSAT;
    double TKUO;
    double LKUO;
    double WKUO;
    double PKUO;
    double LLODKUO;
    double WLODKUO;
    double KVTHO;
    double LKVTHO;
    double WKVTHO;
    double PKVTHO;
    double LLODVTH;
    double WLODVTH;
    double STETAO;
    double LODETAO;
    double SCREF;
    double WEB;
    double WEC;
    double IMAX;
    double TRJ;
    double FREV;
    double CJORBOT;
    double CJORSTI;
    double CJORGAT;
    double VBIRBOT;
    double VBIRSTI;
    double VBIRGAT;
    double PBOT;
    double PSTI;
    double PGAT;
    double PHIGBOT;
    double PHIGSTI;
    double PHIGGAT;
    double IDSATRBOT;
    double IDSATRSTI;
    double IDSATRGAT;
    double CSRHBOT;
    double CSRHSTI;
    double CSRHGAT;
    double XJUNSTI;
    double XJUNGAT;
    double CTATBOT;
    double CTATSTI;
    double CTATGAT;
    double MEFFTATBOT;
    double MEFFTATSTI;
    double MEFFTATGAT;
    double CBBTBOT;
    double CBBTSTI;
    double CBBTGAT;
    double FBBTRBOT;
    double FBBTRSTI;
    double FBBTRGAT;
    double STFBBTBOT;
    double STFBBTSTI;
    double STFBBTGAT;
    double VBRBOT;
    double VBRSTI;
    double VBRGAT;
    double PBRBOT;
    double PBRSTI;
    double PBRGAT;
    double CJORBOTD;
    double CJORSTID;
    double CJORGATD;
    double VBIRBOTD;
    double VBIRSTID;
    double VBIRGATD;
    double PBOTD;
    double PSTID;
    double PGATD;
    double PHIGBOTD;
    double PHIGSTID;
    double PHIGGATD;
    double IDSATRBOTD;
    double IDSATRSTID;
    double IDSATRGATD;
    double CSRHBOTD;
    double CSRHSTID;
    double CSRHGATD;
    double XJUNSTID;
    double XJUNGATD;
    double CTATBOTD;
    double CTATSTID;
    double CTATGATD;
    double MEFFTATBOTD;
    double MEFFTATSTID;
    double MEFFTATGATD;
    double CBBTBOTD;
    double CBBTSTID;
    double CBBTGATD;
    double FBBTRBOTD;
    double FBBTRSTID;
    double FBBTRGATD;
    double STFBBTBOTD;
    double STFBBTSTID;
    double STFBBTGATD;
    double VBRBOTD;
    double VBRSTID;
    double VBRGATD;
    double PBRBOTD;
    double PBRSTID;
    double PBRGATD;
    double SWJUNEXP;
    double VJUNREF;
    double FJUNQ;
    double VJUNREFD;
    double FJUNQD;
    double DTA;
    //  Variables of global_model scope
    int CHNL_TYPE;
    int SWGEO_i;
    int SWIGATE_i;
    int SWIMPACT_i;
    int SWGIDL_i;
    int SWJUNCAP_i;
    int SWJUNASYM_i;
    int SWNUD_i;
    int SWEDGE_i;
    int SWDELVTAC_i;
    int SWIGN_i;
    double TOXO_i;
    double EPSROXO_i;
    double NSUBO_i;
    double WSEG_i;
    double NPCK_i;
    double WSEGP_i;
    double LPCK_i;
    double TOXOVO_i;
    double TOXOVDO_i;
    double LOV_i;
    double LOVD_i;
    double LP1_i;
    double LP2_i;
    double WBET_i;
    double AXL_i;
    double ALP1L2_i;
    double ALP2L2_i;
    double SAREF_i;
    double SBREF_i;
    double KVSAT_i;
    double LLODKUO_i;
    double WLODKUO_i;
    double LLODVTH_i;
    double WLODVTH_i;
    double LODETAO_i;
    double SCREF_i;
    double WEB_i;
    double WEC_i;
    double RSHG_i;
    double RSH_i;
    double RSHD_i;
    double RINT_i;
    double RVPOLY_i;
    double NSUBEDGEO_i;
    double LPEDGE_i;
    double QMC_i;
    double EPSSI;
    // end verilog model variables=====
};

void registerDevice(const DeviceCountMap& deviceMap = DeviceCountMap(),
                    const std::set<int>& levelSet = std::set<int>());

} // namespace ADMSPSP103TVA
} // namespace Device
} // namespace Xyce
#endif //Xyce_N_DEV_ADMSPSP103TVA_h
